プログラムをDLLにレイトバインドしようとしています。
メソッドをインポートする方法は知っていますが、ヘッダーファイルの1つに、次のような定義があります。
EXTERN_C const IID SomeVariable;
「未解決の外部シンボル」エラーを取得せずに、プログラムでこの変数を参照するにはどうすればよいですか?
プログラムをDLLにレイトバインドしようとしています。
メソッドをインポートする方法は知っていますが、ヘッダーファイルの1つに、次のような定義があります。
EXTERN_C const IID SomeVariable;
「未解決の外部シンボル」エラーを取得せずに、プログラムでこの変数を参照するにはどうすればよいですか?
GetProcAddressを使用して、関数または変数のアドレスを取得できます。
MSDNのGetProcAddr()を参照してください。
const IID *idp = reinterpret_cast<const IID *>(GetProcAddr(hLibrary, "SomeVariable"));
これで、ポインターをSomeVariable
介して関数を参照できるのと同じように、ポインターを介して参照できるようになりました。もちろん、実際に使用する前に、ポインタがnullでないことを確認する必要があります。