【问题标题】:Enterprise Architect Reverse Engineering: 'Unexpected symbol' errorEnterprise Architect 逆向工程:“意外符号”错误
【发布时间】:2013-07-29 16:38:35
【问题描述】:

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

在第 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);
};

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

【问题讨论】:

  • 能否在问题中包含错误和代码。
  • 请将代码和错误放入您的问题中,不要试图强迫他们跟随外部链接(这里的许多人无论如何都不会这样做)。

标签: c++ enterprise-architect


【解决方案1】:

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

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

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

【讨论】:

  • 嗨,嗨,我需要使用 EA-Enterprise Architect 定义语言宏 ISIMModel 吗?怎么做?我是 EA 的初学者
  • 转到我提到的那个菜单项 (see here also)。
  • @David Also 注意:您不需要提供 ISIMModel 的宏定义(正如您在 EA 用户论坛中提到的),而是提供 SIMMDLENVv01_EXPORT 的宏定义!
  • 我给ISIMModel定义了语言宏,但是现在出现这个错误。请看。第 12 行解析 C:\Documents and Settings\Meus documentos\EA_Documentos\Modelos\Environment\class\CSIMEnvFactory.h 时出错。意外符号:{ 您可能需要定义语言宏。第 99 行解析 C:\Documents and Settings\Meus documentos\EA_Documentos\Modelos\Environment\class\CSIMEnvironmentModel.h 时出错。意外符号:,您可能需要定义语言宏。
  • @David 请参阅我之前评论中的注释:您需要为SIMMDLENVv01_EXPORT 设置宏定义!!
猜你喜欢
  • 2017-11-16
  • 2016-06-10
  • 2013-12-03
  • 2011-05-28
  • 2013-10-07
  • 2015-12-12
  • 1970-01-01
  • 1970-01-01
  • 2014-11-25
相关资源
最近更新 更多