解決方案中有兩個WIN32 DLL項目,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在函數引用「布爾__cdecl CreateClient(無效)」(?CreateClient @@ AW4XZ)
兩個DLL文件編譯成同一個文件夾。 DependencyWalker將導出的AttachMGN函數顯示出來。主要項目對Mgn項目具有相關性,如果這很重要的話。
我相信我只是忽略了一些東西....
在此先感謝。
如何從VS環境做到這一點? :8對不起,這是我第一個win32項目。 – drumsta 2010-03-19 23:33:15
剛剛檢查並且main.dll在「鏈接器」 - >「輸入」部分的「附加依賴項」字段中的值爲%(AdditionalDependencies)。並且main.dll有一個依賴項設置爲mgn.dll – drumsta 2010-03-19 23:42:17
添加mgn作爲對main的引用,它與您用於將其設置爲依賴項的菜單相同。 – 2010-03-19 23:46:46