2011-10-21 54 views
0

我是新來的visual c + +和生鏽的c + +。當我指定dll時找不到lib文件

我創建了一個dll項目,遵循Visual C++的指導。現在我想測試我的dll以確保它正常工作。我創建了一個空的項目並放入tester.cpp。我將dll添加到項目引用和路徑中。然後我嘗試運行它。

之前,我包括我的DLL(「你好世界!」)的東西它的工作。現在,我已經把我的東西引用dll,它失敗了。該消息是:

1> LINK:致命錯誤LNK1104:無法打開文件 'C:\用戶\湯姆\文檔\ cworkspace \巴納\調試\ barnaby.lib'

事情我不明白是指向上面路徑中存在的dll的引用鏈接。這裏是我的代碼:

#include <iostream> 
#include <string> 
#include <vector> 

#include "barnaby.h" 

int main(int argc, char *argv[]){ 
    std::vector<std::string> tzNames = Barnaby::TimeZoneFunctions::getTimezoneList(); 
    for(std::vector<std::string>::iterator iter = tzNames.begin(); iter != tzNames.end(); iter++){ 
     std::cout << *iter << std::endl; 
    } 
} 

想法?

+0

'引用鏈接到dll':.lib,而不是.dll –

+0

那麼,我該如何構建.lib? – Thom

+0

另外,忘了告訴你,我按照這裏的方向:[鏈接] http://msdn.microsoft.com/en-us/library/ms235636.aspx [/ link] – Thom

回答

0

好了,我發現從http://binglongx.wordpress.com/2009/01/26/visual-c-does-not-generate-lib-file-for-a-dll-project/它告訴我,包括我的DLL頭下面的代碼答案:

#ifdef BARNABY_EXPORTS 
#define BARNABY_API __declspec(dllexport) 
#else 
#define BARNABY_API __declspec(dllimport) 
#endif 

然後,每個我出口你只需先功能是:

BARNABY_API int add(){ 
} 

通過單擊新項目DLL嚮導上的「導出符號」框或通過對應用程序員進行投票選擇「是」,可以防止所有這些情況。

感謝您的幫助。

相關問題