C++でDLL(minifmod.dll)をインポートするにはどうすればよいですか?
このDLL内の関数を呼び出せるようにしたい。私はすでに関数の引数リストを知っていますが、それを呼び出す方法がわかりません。
C#のようにC++でインポートされた関数を宣言する方法はありますか?
インポートされた関数を宣言するためのc#構文は、c ++では使用できません。 DLLの使用方法に関するその他のSO質問があります:
DLLにCOMタイプライブラリが含まれている場合は、#importステートメントをそのまま使用できます。
#import dllname.dll
それ以外の場合は、インポートライブラリとリンクする必要があり、コンパイラに関数プロトタイプを提供する必要があります。通常、インポートライブラリとプロトタイプを含むヘッダーファイルは、DLL開発者によって提供されます。提供していない場合、作成が非常に困難になる可能性があります-ただし、関数の引数リストがわかっている場合は除きます(説明は here など)。
実行時に LoadLibrary()
を呼び出し、次に GetProcAddress()
を呼び出してDLLから関数にアクセスできます。このアドレスをtypedef
で定義したプロトタイプにキャストする必要があります。 GetProcAddress
ドキュメントページの例を参照してください。