Beauvais Motorsport
ClioSport Club Member
I'm not 100% sure what the developer(s) meant with that comment, but it suggests that introducing new enumerated values (perhaps to represent new /additional colours) means that they also need to be replicated in multiple locations (i.e. the files you mention). For enums, this seems like a bad design decision as you generally want to specify them once in a well-defined source location.
It seems that a mixture of managed and unmanaged code is being used here. As you mentioned, .NET Framework 4.8 is being used in part along with unmanaged code, which looks a lot like C++ to me. The colour/styling themes in the unmanaged assembly look a lot like the resources that get spat out when writing a C++ application using the MFC library. This makes sense as, in my previous post, I mentioned that I believed Solidworks was written originally in MFC.
I would imagine that the managed code (.NET Framework) is marshalling data to/from the unmanaged assembly's resource section to style and present the user interface. And I'm assuming that that is what you are trying to figure out to create new styling (or edit existing styling)? It can be tricky decompiling a DLL and the process is not necessarily straightforward. DLLs may be wholly encrypted, partially encrypted, obfuscated... and they may not.
However, even if we assume that a DLL can be successfully decompiled, other problems would need to be overcome. In this case, being able to replicate those enumerated values in other files. Just having those files available and being able to change them doesn't mean they will magically work. You would need the entire code base in which those files reside. You would need to make the changes to the files (adding the enums), and then rebuild the entire code base.
On the subject of the enums, do you have any examples of what they are or might be? In C# and C++, enums are designed to represent discrete sets of named constants, typically using integer values. As such, they cannot directly store complex data types like an RGB triplet.
As above, it looks/feels/smells a lot like legacy Win32/MFC given the assembly structure and the naming conventions used in the resource section.
Thank you for the guidance, has pointed me in the right directions quickly!
In that txt for the theme rgb colours, there are random notes made by someone like "JCW - WE WANT A HORIZONTAL SEPARATOR, BUT NOT VERTICAL SO CODE NEEDS TO CHANGE", have included the file if you're curious.
The unmanaged file contains nearly all of the icons/buttons/logos png's in different resolutions, using resource hacker I can replace them with a different colour or image, top left logo used to be red. This info may not help at all..
The directory that they point to in the txt file starts with am, I just had a play in IDA and opened a different dll which came up with this, implying 'am' is a folder in c drive. It couldn't find it but went through anyway and came up with this.
This is a another dll for ref.
The main dll that contains the theme txt files.
As far as what Id like to change/modify about the ui, its probably the equivalent of learning to swim by jumping off a cruise ship in the middle of the pacific now seeing how IDA decompiles the dll files.
The first image I shown with the feature manager to the left has a solid colour background, 247, 247, 247 in the txt file which I confirmed is right. Id like it to be transparent. Now the possibly good news is there is a transparent feature tree in sw but it doesn't stay shown once you've created a sketch or feature, so you have to press c twice to open it again, also you have to L click a feature before you can r click to list options to change, something small but as far as work flow goes it slows you down. I guess changing how the transparent tree functions could be no easier as you still have to find the file that contains the code and edit/ compile.
Said tree, it also hides half of the text until you hover over it. So 3 changes that I would want to make.
Edit: I just opened a large file and with the transparent tree open it runs so slow lol. At least theres merit in trying to learn, right..?
Attachments
Last edited: