У меня есть DLL, которую я создал как приложение C32 Win32. Чтобы предотвратить искажение имени в моей DLL, я использовал определение EXPORT, определенное ниже:
#ifndef EXPORT
#define EXPORT extern "C" __declspec(dllexport)
#endif
EXPORT int _stdcall SteadyFor(double Par[], double Inlet[], double Outlet[]);
Чтобы этот код компилировался, мне нужно было зайти в Свойства проекта и установить C / C ++ Calling Convention
на __stdcall (/ Gz) и установить Compile As
на Compile as Код C ++ (/TP).
Это работало в режиме отладки, но в режиме выпуска выбрасывается error C2059: syntax error: 'string'
на все мои функции EXPORT - даже если я настроил параметры режима выпуска так же, как параметры отладки.
Как мне получить Release Mode для компиляции?
С уважением,
~ Джо
(Разработка под Visual Studio 2008 Professional)
EDIT:
Множество комментариев о моем #define, который, похоже, не вызывает никаких проблем.
Чтобы избежать путаницы, мой заголовочный файл был переписан следующим образом:
#ifndef coilmodel_h
#define coilmodel_h
extern "C" __declspec(dllexport) int _stdcall steadyFor(double Par[], double Inlet[], double Outlet[], char* FileIn, char* FileOut);
#endif
Вот и все.
Ошибка:
Описание error C2059: syntax error: 'string'
Файл coilmodel.h
Линия 4
Опять же, эта ошибка появляется только в режиме выпуска, а не в режиме отладки.
Project - это приложение C32 Win32 DLL.