C++ Win32 アプリケーションとして作成した DLL があります。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++ Code (/TP)に設定する必要がありました。
error C2059: syntax error: 'string'
これはデバッグ モードでは機能しましたが、リリース モードの設定をデバッグ設定と同じに構成したにもかかわらず、リリース モードではすべての EXPORT 関数がスローされます。
リリース モードをコンパイルするにはどうすればよいですか?
よろしく、
~Joe
(Visual Studio 2008 Professional で開発中)
編集:
私の #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 アプリケーションです。