web-dev-qa-db-ja.com

C ++(Win32)でDLLをインポートする

C++でDLL(minifmod.dll)をインポートするにはどうすればよいですか?

このDLL内の関数を呼び出せるようにしたい。私はすでに関数の引数リストを知っていますが、それを呼び出す方法がわかりません。

C#のようにC++でインポートされた関数を宣言する方法はありますか?

16
Kristina Brooks
13
luke

DLLにCOMタイプライブラリが含まれている場合は、#importステートメントをそのまま使用できます。

#import dllname.dll

それ以外の場合は、インポートライブラリとリンクする必要があり、コンパイラに関数プロトタイプを提供する必要があります。通常、インポートライブラリとプロトタイプを含むヘッダーファイルは、DLL開発者によって提供されます。提供していない場合、作成が非常に困難になる可能性があります-ただし、関数の引数リストがわかっている場合は除きます(説明は here など)。

5

実行時に LoadLibrary() を呼び出し、次に GetProcAddress() を呼び出してDLLから関数にアクセスできます。このアドレスをtypedefで定義したプロトタイプにキャストする必要があります。 GetProcAddressドキュメントページの例を参照してください。

0
Serge Rogatch