У меня есть два проекта DLL WIN32, main.dll должен вызвать функцию в mgn.dll.
mgn.dll имеет заголовочный файл mgn.h:
#ifdef MGN_EXPORTS
#define MGN_API __declspec(dllexport)
#else
#define MGN_API __declspec(dllimport)
#endif
extern "C" bool MGN_API AttachMGN(void);
и исходный файл mgn.cpp:
#include "stdafx.h"
#include "mgn.h"
MGN_API bool AttachMGN(void)
{
...
}
main.dll вызывает функцию AttachMGN из одного из исходных файлов:
#include "stdafx.h"
#include "..\mgn\mgn.h"
bool CreateClient()
{
return ::AttachMGN();
}
mgn.dll успешно компилируется. main.dll не показывает никаких ошибок в текстовом редакторе VS, я могу перемещаться с помощью функции «Перейти к определению». Однако во время сборки я получаю ошибку:
ошибка LNK2019: неразрешенный внешний символ __imp__AttachMGN, указанный в функции "bool __cdecl CreateClient (void)" (? CreateClient @@ AW4XZ)
Обе библиотеки DLL компилируются в одну и ту же папку. DependencyWalker показывает функцию AttachMGN как экспортированную. Основной проект имеет зависимость, установленную для проекта Mgn, если это имеет значение.
Я считаю, что я просто что-то упустил ....
Заранее спасибо.