を含むコード用の Visual Studio プロジェクトを作成しようとしています。
DL_EXPORT(void) initlua(void);
だから私は基本的に次のようなマクロが必要です
#define DL_EXPORT(retVal) __declspec(dllexport) retVal
これは機能しますが、OS/コンパイラ固有であるため、プロジェクトに入れたいと思います*。しかし、それを行うためにプロパティ-> C/C++->プリプロセッサ->プリプロセッサ定義(またはコマンドライン)に何を入れればよいかわかりません。これらのいずれかが機能すると思います:
DL_EXPORT(retVal) __declspec(dllexport) retVal
DL_EXPORT(retVal)=__declspec(dllexport) retVal
私は後者に傾いていますが、どちらも機能していないようです-コンパイル時に次のエラーが発生します。
error C2061: syntax error : identifier 'initlua'
error C2059: syntax error : ';'
error C2059: syntax error : 'type'
プリプロセッサの結果を取得するために /P を使用してコンパイルすると、その理由が説明されます。何も起こらなかったため、コンパイラはそれint DL_EXPORT(void)
を;
.
定義の正しい構文は何ですか? それとも、この質問の人々が想定したように、何もありませんか?
ありがとう。
* 壊したくない既存のビルド スクリプトを使用して、既存のライブラリ (狂った python) 用の Visual Studio プロジェクトを作成しようとしているだけなので、MSVC に単純な #ifdef-check を使用していません。確かに使用できます#ifndef DL_EXPORT
が、何か不足しているのか、それとも Visual Studio でこれが不可能なのかを知りたいです。