1

インラインアセンブラは64ビットVC++(2010)でサポートされていないため、最近、インライン関数の70ページの静的C++ライブラリをストレート64ビットアセンブラ静的ライブラリに変換しました。静的ライブラリを含む64ビットDLLは、エラーなしでビルドされ、asm関数に正しくリンクされます。ただし、EXEをDLLにリンクしても、asm関数は表示されず、参照されるすべての一意のシンボルに対してLNK2001:未解決の外部シンボルエラーが発生します。

静的ライブラリアセンブラコードは次のようになります。

public   My_func
My_func  proc
         ...
         endp

静的ライブラリを含むDLLは次のように宣言します。

extern "C" __declspec(dllexport) My_func (some_arguments);

DLLにリンクするEXEは次のように宣言します。

extern "C" My_func (some_arguments);  // __declspec(dllimport) here doesn't help

私は全体で_cdeclを使用し、どこでもC++コードとしてコンパイルしています。試すことが不足していますが、ここで何が欠けていますか?可能であれば、これに.DEFファイルを追加することは避けたいと思います。

4

0 に答える 0