我是visual c ++的新手,并且使用c ++生锈。
我按照可视化C ++方向创建了一个dll项目。现在我想测试我的dll以确保它正常工作。我创建了一个空项目并放入tester.cpp。我将dll添加到项目引用和路径中。然后我尝试运行它。
在我从我的dll(“Hello world!”)中添加内容之前,它确实有效。既然我已经把我的东西用来引用dll了,那就失败了。消息是:
1> LINK:致命错误LNK1104:无法打开文件'C:\ Users \ thom \ Documents \ cworkspace \ barnaby \ Debug \ 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 :(得分: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向导上的“导出符号”框或对应用程序编程人员的lobotomies投票赞成来阻止。
感谢您的帮助。