Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 需要帮助在我的vc+;中包含lib文件吗+;项目_Visual Studio_Visual C++_Dll_Static Libraries_Biometrics - Fatal编程技术网

Visual studio 需要帮助在我的vc+;中包含lib文件吗+;项目

Visual studio 需要帮助在我的vc+;中包含lib文件吗+;项目,visual-studio,visual-c++,dll,static-libraries,biometrics,Visual Studio,Visual C++,Dll,Static Libraries,Biometrics,首先,我是VisualStudio的初学者,所以如果我在某些方面出错,请原谅并指导我,我是java和php程序员,所以我对编程并不陌生 我想开发一个读取指纹的应用程序,我使用这个设备 我认为它使用了Windows生物识别框架,所以我尝试运行本页中提到的代码 这就是我所做的 #include "stdafx.h" #include "Windows.h" #include "Stdio.h" #include "Conio.h" #include "Winbio.h" int _tmain(i

首先,我是VisualStudio的初学者,所以如果我在某些方面出错,请原谅并指导我,我是java和php程序员,所以我对编程并不陌生

我想开发一个读取指纹的应用程序,我使用这个设备 我认为它使用了Windows生物识别框架,所以我尝试运行本页中提到的代码

这就是我所做的

#include "stdafx.h"
#include "Windows.h"
#include "Stdio.h"
#include "Conio.h"
#include "Winbio.h"

int _tmain(int argc, _TCHAR* argv[])
{ HRESULT CaptureSample(); }
您可以在上面提供的第二个链接中找到函数CaptureSample()。 正如你在他们说的链接Winbio.lib中看到的,我知道它是system32中的一个dll,我做了一些研究,创建了一个Winbio.def文件和Winbio.lib文件

现在我的问题是我不知道如何链接lib文件,我在属性>>链接器>>附加依赖项中添加了“Winbio.lib”

它向我显示了以下错误 *错误LNK2019:未解析的外部符号_WinBioOpenSession@28* 事实上,即使我将其从其他依赖项中删除,也会出现此错误


请告诉我哪里出错了,我应该把lib文件放在任何特定的目录中吗?我应该把dll复制到某个地方吗?还是别的什么?

链接器>常规>附加库目录

将路径放入lib

链接器>输入

输入lib名称

如果你在谷歌上搜索一下,你就能找到这个

如果一切正常,但仍然无法正常工作,则很可能是lib文件未正确生成。然后,您可以尝试使用动态加载dll文件


首先调用loadLibrary以获取dll的句柄,然后调用getProcAddress以获取指向函数的指针。将指针强制转换到h文件中定义的目标函数中。然后你就可以调用这个函数了

链接器>常规>附加库目录

将路径放入lib

链接器>输入

输入lib名称

如果你在谷歌上搜索一下,你就能找到这个

如果一切正常,但仍然无法正常工作,则很可能是lib文件未正确生成。然后,您可以尝试使用动态加载dll文件


首先调用loadLibrary以获取dll的句柄,然后调用getProcAddress以获取指向函数的指针。将指针强制转换到h文件中定义的目标函数中。然后你就可以调用这个函数了

我也有同样的问题。以下步骤在VS 2015社区版上帮助了我

  • 右键单击项目>属性

  • 链接器>输入>然后在添加的依赖项中放入winbio.lib;面对


  • 我也有同样的问题。以下步骤在VS 2015社区版上帮助了我

  • 右键单击项目>属性

  • 链接器>输入>然后在添加的依赖项中放入winbio.lib;面对


  • 你把lib文件弄对了吗?dll的提供程序没有向您提供lib文件?我正在使用c:\windows\system32中提供的dll,我成功地创建了def文件,如“LIBRARY winbio.dll EXPORTS\u BioLogonIdentifiedUser@1 WinBioAcquireFocus@2 WinBioCancel@3……”并使用visual studio工具创建了lib文件。我猜函数名已损坏,需要将参数大小附加到函数名中,如错误消息中所示WinBioOpenSession@28,这应该是def文件中的函数名,@28表示函数的参数大小为28字节。如果dll不导出函数名,而只导出序号,则def文件中的@1@2应与dll中的序号相同。但没关系,这只会在执行期间而不是编译期间导致错误。实际上,您可以使用dumpbin/headers xxx.lib转储lib文件。您将在lib文件中看到符号,它应该与_WinBioOpenSession@28包括在前面加下划线和在后面加上@28。我认为当您从def创建时,下划线将自动添加,but@28不会。请转储库以确保有下划线,如果没有,请修改def文件以包含下划线。库文件是否正确?dll的提供程序没有向您提供lib文件?我正在使用c:\windows\system32中提供的dll,我成功地创建了def文件,如“LIBRARY winbio.dll EXPORTS\u BioLogonIdentifiedUser@1 WinBioAcquireFocus@2 WinBioCancel@3……”并使用visual studio工具创建了lib文件。我猜函数名已损坏,需要将参数大小附加到函数名中,如错误消息中所示WinBioOpenSession@28,这应该是def文件中的函数名,@28表示函数的参数大小为28字节。如果dll不导出函数名,而只导出序号,则def文件中的@1@2应与dll中的序号相同。但没关系,这只会在执行期间而不是编译期间导致错误。实际上,您可以使用dumpbin/headers xxx.lib转储lib文件。您将在lib文件中看到符号,它应该与_WinBioOpenSession@28包括在前面加下划线和在后面加上@28。我认为当您从def创建时,下划线将自动添加,but@28不会。请转储库以确保有下划线,如果没有,请修改def文件以包含下划线。