次の 2 つの方法で、クラス A が dll ライブラリのヘッダー ファイルでのみ定義されている (cpp では実装されていない) と仮定します。
class __declspec(dllimport) A {...};
class A {...};
アプリケーションでライブラリを使用しようとしましたが、最初のライブラリが機能しないことがわかりました。なんで?dllimportで動作させる方法はありますか? ありがとう。
アンダースコアは 1つで__declspec(import)
はなく 2 つです。
それとは別に、使用しているライブラリが別のバージョンの Visual Studio でコンパイルされている場合、インポートしようとしているシンボルが見つからない可能性があります。
ABI が変更される可能性があるため、あるバージョンの Visual Studio でコンパイルされたライブラリは、別のバージョンの Visual Studio でコンパイルされたライブラリとリンクできないと想定する必要があります。
リンクしようとしているアプリケーションと同じバージョンの Visual Studio を使用して DLL をコンパイルする必要があります。