Sparx Systems Forum

Enterprise Architect => General Board => Topic started by: shaft on May 17, 2002, 02:46:43 pm

Title: Problem reverse engineering a dll library
Post by: shaft on May 17, 2002, 02:46:43 pm
Quick question that probably hasn't been implemented yet, but I figure I'll ask.  I'm attempting to reverse-engineer a DLL I wrote a while ago...

I have the following define statment

#ifdef MAKE_A_DLL
#define LINKDLL __declspec( dllexport)
#else
#define LINKDLL __declspec( dllimport)
#endif

Now every class in the DLL looks something like this:

class LINKDLL CTwilightEngineClass : public CSomething
{
...
}


Now the problem is when I try to import it, EA thinks the class is named LINKDLL, and it doesn't recoginize that it's derived from CSomething.

Is there a way around this?  Make it ignore the word LINKDLL.
Title: Re: Problem reverse engineering a dll library
Post by: gsparks on May 18, 2002, 12:00:25 am
Hi,

Yes there is a specific dialog to set up C++ Macros which the parser will ignore. It is under Refrerence/Language Macros.

Add all the defined names such as LINKDLL to the C++ list. Then when you import, they will be ignored.

Also, if you have macros which wrap a block of code, and you wish to ignore the whole block, then you can specify the macro name in the following way:

STARTMACRO ^ ENDMACRO

make sure you include the space each side of the ^ character.

An example of this for MFC would be

BEGIN_PARAM_MAP ^ END_PARAM_MAP

Geoff Sparks