1

私はいくつかのマクロを持っており
#define dosomething(x) something(x)、それはdllにコンパイルされています。ビルドによって作成されたそのライブラリにそのマクロがありますか?

4

3 に答える 3

7

いいえ。

マクロはコンパイラには見えません。それらは、最初に発生する前処理中に置換テキストに置き換えられます。マクロは愚かで、あなたやあなたの動機について何も知りません。彼らはあなたが書いている言語さえ知りません。注意してください!

于 2011-08-12T08:17:12.930 に答える
4

いいえ。

マクロは、ソース コードレベルで (そうではない) 精巧なコピー ペースト デバイスにすぎません。それらはコンパイル前に展開され、コンパイラはそれらの存在を認識しません。

dosomethingシンボルをライブラリにエクスポートする場合は、シンボルを関数として宣言する必要があります。

于 2011-08-12T08:15:55.460 に答える
3

マクロは、プリプロセッサによってのみ使用および処理されます。それらはコンパイラによって使用されず、リンカーによってまったく認識されません。したがって、答えは NO です。マクロはエクスポートされません。

あなたは何が必要ですか?#includeヘッダーファイルを指定することはできませんか?

于 2011-08-12T08:16:23.663 に答える