我用VS2010用下面的函数创建了一个简单的动态链接库:
extern "C"
{
__declspec(dllexport) int myFunc()
{
return 1;
}
}我比较了为x64和Win32平台生成的dll和lib文件,发现了一个我不理解的结果。
使用Dependency Walker,我发现两个dlls都将显示未修饰的"myFunc“。但是,当在Notepad++中打开这两个库文件时,Win32库显示"_myFunc“,而x64仅显示"myFunc”。
有人能解释一下为什么lib签名不同吗?是否可以删除32位lib文件中的下划线?
发布于 2015-08-25 01:02:31
签名就是它,你不能(或者不应该)用编辑器修改它
库是不同的,因为一个库用于32位,另一个库用于64位
请记住,动态链接库生成.lib,但它只供编译时使用,重要的部分是动态链接库本身,您可以删除.lib并执行.exe,没有任何问题
https://stackoverflow.com/questions/32187514
复制相似问题