我正在尝试使用逆向工程生成类图,但发生了以下情况:
在第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);
};
此错误消息的原因是什么?
答案 0 :(得分:2)
您的代码包含宏定义(SIMMDLENVv01_EXPORT
)的使用,该定义不是EA的标准宏定义的一部分(其中很多内容主要涵盖ATL和MFC)。
您需要在“Settings->Language Macros”下添加其他内容(如错误消息中的提示所示)。
注意强>
在声明MACRO()
的宏以接收任意数量的参数时,请使用语法#defined
。
如果您正在尝试对Qt等框架库进行反向工程,则需要设置其中许多功能,以便能够对代码进行反向工程而不会出现错误。 也许您应该考虑一种不同的策略来引用模型中的这些类型和类 另一种解决方法可能是单独预处理您想要首先导入的所有代码,并从预处理结果中导入。