我可以成功地构建和使用库。后者只有当库和其他项目都在同一个解决方案中时.... 我在名为lib ...的文件夹下复制了isam.lib isam.dll isam.exp isam.h。
然后我创建了一个新的解决方案..
设置链接器 - >输入使用我的isam.lib ...构建失败,无法找到该文件...
将VC ++目录设置为包含目录和库目录到lib文件夹...
构建成功..
我也设置了C / C ++的路径一般附加包括目录
设置链接器常规附加库目录
构建没问题....
然后我包含我的isam文件..
#include "stdafx.h"
#include <isam.h>
int _tmain(int argc, _TCHAR* argv[])
{
isopen("lamogio",2);
return 0;
}
建筑失败......
错误1错误LNK2019:未解析的外部符号“__declspec(dllimport)int __cdecl isopen(char const *,int)”(_ imp ?isopen @@ YAHPBDH @ Z)在函数_wmain C中引用:\ Users \ Parhs \ documents \ visual studio 2010 \ Projects \ testdll2 \ testdll2 \ testdll2.obj testdll2
错误2错误LNK1120:1个未解析的外部C:\ Users \ Parhs \ documents \ visual studio 2010 \ Projects \ testdll2 \ Debug \ testdll2.exe 1 1 testdll2
答案 0 :(得分:3)
好吧,我们假设您告诉链接器使用链接器,输入,附加依赖关系设置链接到isam.lib。然后,链接器错误的可能原因是您在C中编写了isam代码,并且您正在C ++程序中使用它。你必须告诉编译器代码是用C编写的:
#include "stdafx.h"
extern "C" {
#include <isam.h>
}
更典型的解决方案是将其放在isam.h文件中,以便它可以使用。像这样:
#ifdef __cplusplus
extern "C" {
#endif
// The declarations
//...
#ifdef __cplusplus
}
#endif