C ++ и DLL не были объявлены в этой области - PullRequest
0 голосов
/ 02 января 2012

После предыдущего вопроса я написал и получил отличный ответ на -

Динамическая загрузка функции из DLL

У меня есть дальнейшие проблемы.Я, должно быть, где-то ошибаюсь, но я почти уверен, что правильно построил .DLL, и я уверен из предыдущего ответа, что он правильно связан с .DLL.

У меня есть следующее:

http://pastie.org/3113984

Я также использовал DependencyWalker, чтобы убедиться, что .DLL экспортирует функцию, которую я пытаюсь вызвать, и показывает, что она экспортируется правильно.

PS: Я получаю сообщение об ошибке при компиляции программы, которая вызывает .dll с ошибкой «не было объявлено в этой области» для экспортируемой функции.

Спасибо за ваше время и помощь!

Ответы [ 2 ]

7 голосов
/ 02 января 2012

Ответ ясен.Вместо записи:

int a = Isworking();

Вы должны написать:

int a = funci();

Isworking - это имя функции в DLL, но импортированный указатель функции называется funci.

0 голосов
/ 02 января 2012

Возможно, это не относится к вашей проблеме (поскольку вы используете win32), но библиотека Poco предоставляет очень простой и удобный способ загрузки символов из общих библиотек (включая DLL). Так что вместо этого вы можете попробовать использовать Poco.

См .: http://pocoproject.org/slides/120-SharedLibraries.pdf

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...