0

我正在尝试使用逆向工程生成类图,但正在发生以下情况:

在第 11 行解析 C:\Documents and Settings\Meus documentos\EA_Documentos\Modelos\Environment\class\Factory.h 时出错。意外符号:ISIMFactory
您可能需要定义语言宏。

在第 99 行解析 C:\Documents and Settings\Meus documentos\EA_Documentos\Modelos\Environment\class\Model.h 时出错。意外符号:ISIMModel
您可能需要定义语言宏。

这些还有很多。

这是对应的代码CSIMEnvironmentModel.h

class SIMMDLENVv01_EXPORT CSIMEnvironmentModel // line 99
: public ISIMModel
, public ISIMEventSource
, public ISIMScheduledModel
, public ISIMExecut
, public ISIMPublisher
{
public:

    CSIMEnvironmentModel(const std::string &a_modelType);
virtual ~CSIMEnvironmentModel(void);

CSIMEnvFactory.h

class SIMMDLENVv01_EXPORT CSIMEnvFactory // line 11
: public ISIMFactory
{
public:
    CSIMEnvFactory();
    virtual ~CSIMEnvFactory(void);
    std::vector<ISIMModel*> InstanceModel(const std::string &a_modelType, const    std::string &a_conf);
};

此错误消息的原因是什么?

4

1 回答 1

2

您的代码包含SIMMDLENVv01_EXPORT不属于 EA 标准宏定义的宏定义 ( ) 的使用(其中有很多主要涵盖 ATL 和 MFC)。您需要在“设置->语言宏”下添加额外的(如错误消息中的提示所示)。

注意声明要接收任意数量参数的宏时
使用语法。MACRO()#defined

如果您尝试对 Qt 或类似的框架库进行逆向工程,则需要设置许多这样才能对代码进行逆向工程而不会出错。可能你应该考虑一个不同的策略来在你的模型中引用这些类型和类。
另一种解决方法可能是先单独预处理要导入的所有代码,然后从预处理结果中导入。

于 2013-07-29T18:43:36.927 回答