Как использовать функции, экспортированные из DLL в C ++? - PullRequest
0 голосов
/ 02 марта 2011

Я создаю два проекта в VC ++ Express 2010, один - DLLTest, другой - CODETest.

В DLLTest , объявляем и определяем функцию func () следующим образом:

__declspec(dllexport) void  func() {...};

Создайте проект DLLTest успешно, файлы DLLTest.dll и DLLTest.lib созданы.

В CODETest , я хочу использовать экспортированную функцию следующим образом:

#include "DLLTest.h"
int main()
{
    ...
    func();
    ...
    return 0;
}

Ошибка возникает при сборке проекта CODETest ---> "неразрешенный внешний символ" void __cdecl letterList (void) ", но при добавлении DLLTest.lib в каталогCODETest проект, процесс сборки успешно.

Не знаю почему? Спасибо за помощь.

1 Ответ

2 голосов
/ 02 марта 2011

Это кажется маловероятным, особенно в той части, где "func" превращается в "letterList". Тем не менее, вы должны указать компоновщику также связать библиотеку импорта DLL, чтобы он мог разрешать идентификаторы, импортированные из этой DLL. Самый простой способ сделать это в MSVC:

#include "DLLTest.h"
#pragma comment(lib, "dlltest.lib")

в CodeTest.cpp. #Pragma делает то же самое, что и настройка дополнительных зависимостей компоновщика.

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