我试图使用反向工程生成一个类图,但正在发生以下情况:
在第11行分析C:\Documents和Settings\Meus documentos\EA_Documentos\Modelos\Environment\class\Factory.h时出错。 您可能需要定义语言宏。 在第99行解析C:\Documents和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);
};这条错误消息的原因是什么?
发布于 2013-07-29 18:43:36
您的代码包含一个宏定义(SIMMDLENVv01_EXPORT)的用法,它不是EA标准宏定义的一部分(很多宏定义主要涵盖ATL和MFC )。您将需要在“Settings->Language Macros”(正如错误消息中的提示所示)下添加其他的。
注意事项
在声明属于#defined的宏时,请使用语法#defined来接收任意数量的参数。
如果您试图反向工程像Qt之类的框架库,那么您需要设置其中的许多代码,这样您就能够在不出错的情况下反向工程代码。也许您应该想一种不同的策略在模型中引用这些类型和类。
另一种解决方法可能是只对要先导入的所有代码进行预处理,然后从预处理结果中导入。
https://stackoverflow.com/questions/17931668
复制相似问题