嗨 我不是一個C++開發人員,我試圖編譯別人的應用程序。構建成功,但我得到5'不一致的DLL鏈接'警告。編譯別人的vs C++應用程序 - 不一致的鏈接
該dll構建,但在現有的dll所在的同一場景中不起作用。沒有代碼更改。
一些google搜索後,我認爲它與此有關,在頭文件中找到:
#ifdef CPLAPPLET_PROGRAM_EXPORTS
#define CPLAPPLET_PROGRAM_API __declspec(dllexport)
#else
#define CPLAPPLET_PROGRAM_API __declspec(dllimport)
#endif
,並有代碼,說CPLAPPLET_PROGRAM_EXPORTS在命令行上定義的註釋。
的警告發生在導出的功能,如:
HRESULT _stdcall CCplApplet_PROGRAM::DllUnregisterServer()
{
// our code added here
return 0;
}
可有人點我在這裏向正確的方向?
謝謝。
編輯處理意見:
我在VS 2008中創建一個C++的Win32 DLL項目,我已經添加了他們的.cpp,.h和.DEF文件到該項目,但僅此而已。我不知道是否需要專門處理.def文件或其他內容?
頭文件中定義的方法,像這樣:
class CPLAPPLET_LNK_PROGRAM CCplApplet_PROGRAM {
public:
static LONG APIENTRY CPlApplet(HWND hWnd, UINT uMsg, LONG lParam1, LONG lParam2);
private:
...
HRESULT _stdcall DllUnregisterServer(void);
...
};
.def文件:
LIBRARY "CplApplet_PROGRAM"
EXPORTS DllUnregisterServer PRIVATE
您正在構建他們的解決方案嗎?有沒有機會丟失鏈接線的.def文件規範? – Rup 2010-12-12 15:58:25
如何在頭文件中定義'DllUnregisterServer'?你是否在頭文件中使用'class CPLAPPLET_PROGRAM_API CCplApplet_PROGRAM ...'?另外,如果你是從VS建立的標誌定義? – Asha 2010-12-12 16:06:13
謝謝 - 我已編輯解決這些問題。阿莎,你指的是什麼標誌? – 2010-12-12 16:17:33