Обратный инжиниринг Enterprise Architect: ошибка «Неожиданный символ»

Я пытаюсь сгенерировать диаграмму классов, используя обратный инжиниринг, но происходит следующее:

Произошла ошибка при синтаксическом анализе C: \ Documents and Settings \ Мои документы \ EA_Documentos \ Modelos \ Environment \ class \ Factory.h в строке 11. Неожиданный символ: ISIMFactory
Вам может понадобиться определить языковой макрос.

Произошла ошибка при синтаксическом анализе C: \ Documents and Settings \ Мои документы \ EA_Documentos \ Modelos \ Environment \ class \ Model.h в строке 99. Неожиданный символ: 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

Решение

Ваш код содержит использование макроопределения (SIMMDLENVv01_EXPORT) это не является частью стандартных макроопределений EA (их в основном много, касающихся ATL и MFC).
Вам нужно будет добавить дополнительные под «Настройки-> Языковые макросы‘(как подсказывает подсказка в сообщении об ошибке).

НОТА
Используйте синтаксис MACRO() при объявлении макросов, которые были #defined получить любое количество аргументов.

Если вы пытаетесь выполнить обратный инжиниринг библиотек фреймворков, таких как Qt или аналогичные, вам нужно установить многие из них, чтобы вы могли осуществлять обратный инжиниринг кода без ошибок.
Возможно, вам следует подумать о другой стратегии, чтобы ссылаться на эти типы и классы в вашей модели.
Другим обходным решением может быть только предварительная обработка всего кода, который вы хотите импортировать в первую очередь, и импорт из предварительно обработанных результатов.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]