Позднее связывание с библиотекой с «внешними» определенными переменными - PullRequest
3 голосов
/ 08 января 2012

Я пытаюсь позднее связать свою программу с DLL.
Я знаю, как импортировать его методы, но в одном из его заголовочных файлов у меня есть такое определение:

EXTERN_C const IID SomeVariable;

Как я могу ссылаться на эту переменную в моей программе, не получая ошибку «неразрешенный внешний символ»?

Ответы [ 2 ]

2 голосов
/ 08 января 2012

Вы можете использовать GetProcAddress, чтобы получить адрес функции или переменной.

1 голос
/ 08 января 2012

См. GetProcAddr () в MSDN.

const IID *idp = reinterpret_cast<const IID *>(GetProcAddr(hLibrary, "SomeVariable"));

Теперь вы можете ссылаться на SomeVariable через указатель - точно так же, как вы можете ссылаться на функции через их указатели.Вы должны, конечно, проверить, что указатель не является нулевым, прежде чем вы на самом деле его используете!

...