Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2010, 21:39   #1
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию Проблема с DLL в Visual C++ 6

Создал DLL. Компилируется отлично, но когда нажимаю Ctrl+F5 (выполнить), выбивает ошибку: error LNK2001: unresolved external symbol _MyFunc@16. Пытался экпортировать функции через #pragma: #pragma comment(linker, "/export:MyFunc=_MyFunc@16"). Подскажите, что не так.
profi вне форума Ответить с цитированием
Старый 18.02.2010, 22:00   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

DLL запускаете?О_о))
В любом случае, очевидно, что ошибка на стадии линковки, то есть Вы сделали Длл и подключаете её к другому своему проекту? В секции экспорта длл есть нужная функция? При компиляции проекта, который использует длл, подключаете её .lib файл?
Для экспорта можно использовать(правда на визуал с++ 6 не проверял)
Код:
extern "C"
__declspec(dllexport) int __stdcall MyFunc(int a, int b, int c, int d)
{
  ....
}
или с помощью .def-файла

Последний раз редактировалось netrino; 18.02.2010 в 22:03.
netrino вне форума Ответить с цитированием
Старый 18.02.2010, 22:04   #3
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Цитата:
DLL запускаете?О_о))
Ну как бы это смешно не звучало, но только при Ctrl+F5 у меня появляется в проекте файл DLL.

Цитата:
В любом случае, очевидно, что ошибка на стадии линковки
Это я уже давно понял. Как её решить?

Цитата:
При компиляции проекта, который использует длл, подключаете её .lib файл?
#pragma comment(lib, "MyProject.lib") так? Но это не помогает.
profi вне форума Ответить с цитированием
Старый 18.02.2010, 22:10   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от profi Посмотреть сообщение
Ну как бы это смешно не звучало, но только при Ctrl+F5 у меня появляется в проекте файл DLL.
О_О странно )

Цитата:
Сообщение от profi
#pragma comment(lib, "MyProject.lib") так? Но это не помогает.
угу )

Не знаю тогда ) Трудно так сказать, "не пощупав" )
netrino вне форума Ответить с цитированием
Старый 18.02.2010, 22:12   #5
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

netrino спасибо большое. Заработало c def. Только просто интересно, почему с прагмой не работало.
profi вне форума Ответить с цитированием
Старый 18.02.2010, 22:23   #6
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

У меня сработало с прагмой, когда я поменял местами MyFunc и _MyFunc@16 или если MyFunc убрать вообще )
Код:
#pragma comment(linker, "/export:_MyFunc@16")
только следует не забыть объявить функцию, как использующую соглашение имён Си, stdcall
netrino вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Visual C++ Как подключить dll? PMike Visual C++ 7 30.06.2020 07:25
Работа с DLL в C++ (Microsoft Visual C++) MaTBeu Visual C++ 27 15.07.2019 16:33
Проблема с windows visual styles в Visual studio 2008 express. [awa Visual C++ 2 09.01.2010 06:05
Как скомпилировать dll в Visual Studio 2005 kks Visual C++ 1 21.12.2009 16:51
Проблема с dll( DM_bite Помощь студентам 10 31.07.2008 16:05