C/C++ コードが混在する DLL を作成しています。エクスポートする関数の序数を指定したい。だから私はこのような.DEFファイルを作成しました
LIBRARY LEONMATH
EXPORTS
sca_alloc @1
vec_alloc @2
mat_alloc @3
sca_free @4
vec_free @5
mat_free @6
...
C++ 関数とクラス メソッドの序数も指定したいと思います。Dependency Walker を使用して、関数の破損した名前を .DEF ファイルに追加しようとしました。
??0CScalar@@QAE@XZ @25
??0CScalar@@QAE@O@Z @26
??0CScalar@@QAE@ABV0@@Z @27
??1CScalar@@QAE@XZ @28
しかし、これは失敗しました。なぜこれが起こっているのでしょうか?
編集: kauppiは良い観察をしたので、質問にさらに情報を追加しています。
- プラットフォーム: Windows (移植性には興味がありません)
- コンパイラ: Microsoft の C++ コンパイラ (私は VS2005 を使用しています)
- これを行う理由:序数を使用すると、C コードからエクスポートされた C++ 関数を呼び出せるという利点があります。