Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Создание DLL


Автор: NT_USER 18.11.2006, 09:38
Есть такое дело. Помогите, please, создать DLL (не MFC), которую можно динамически загружать приложением. Компилятор: Microsoft Visual C++ 6.0. Потому что как я ни делаю, функция GetProcAddress возвращает NULL...

Автор: Partizan 18.11.2006, 11:14
приведи полный код..а там уже будем разбираться где у тебя бага...

Автор: Earnest 20.11.2006, 17:04
Скорее всего, проблема не в создании DLL (если DLL создается и загружается - все нормально), а в определении функции.
1) Функцию, которую ты желаешь добывать через GetProcAddress, обязательно надо экспортировать.
2) Имя, передаваемое в GetProcAddress, должно соответсвовать т.н. декорированному имени, под которм функцию знает линкер.

Автор: Partizan 20.11.2006, 17:25
гмм....мож чел LoadLibrary не вызывает?

Автор: NT_USER 27.11.2006, 12:01
Спасибо за помощь! Я разобрался. Дело в том, что надо в функции GetProcessAddress писать не то имя, в котором оно у нас в исходнике DLL, а в искажённом. Например, если в исходнике MyFunction, то в  GetProcessAddress будет что-то типа ???@MyFunction@@@??? и т.д.

Автор: Nastya 27.11.2006, 12:47
extern "C" - поставь тогда можешь писать нормальное имя, только всякие с++ -сные чтучки типа перегрузки не применишь

Автор: Любитель 27.11.2006, 16:59
Как вариант - *.def - файлы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)