我有一個我創建的DLL作爲C++ Win32應用程序。爲了防止名字在我的DLL壓延,我用下面定義的導出定義:extern「C」DLL:調試是可以的,釋放拋出錯誤C2059
#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
設置爲編譯爲C++代碼(/ TP)。
這在調試模式下工作,但釋放模式在我的所有EXPORT功能上投擲error C2059: syntax error: 'string'
- 即使我已將發佈模式設置配置爲與調試設置相同。
如何獲取發佈模式進行編譯?
問候,
〜喬
(Visual Studio 2008專業開發下)
編輯:
了很多關於我的#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
再次,這個錯誤只出現在發行模式,而不是調試模式。
項目是一個C++ Win32 DLL應用程序。
我認爲您發佈的代碼與問題無關。你能告訴我們哪些線路扼流圈以及發佈該線路的代碼嗎?從您發佈的代碼看來,您沒有在發佈模式下定義EXPORT。 – 2010-06-22 15:26:45
請參閱上面的「編輯」部分。我無法在這裏解釋這一切。 – jp2code 2010-06-22 15:55:48