我在VS2010中使用以下函数创建了一个简单的dll:
extern "C"
{
__declspec(dllexport) int myFunc()
{
return 1;
}
}
我比较了x64和Win32平台生成的dll和lib文件,我找到了一个我不明白的结果。
使用Dependency Walker我看到两个dll都会显示未修饰的" myFunc"。 在Notepad ++中打开两个lib文件时,Win32 lib显示" _myFunc"当x64只显示" myFunc"。
时有人可以解释一下为什么lib签名不同吗?是否可以删除32位lib文件中的下划线?
答案 0 :(得分:-1)
签名是什么,你不能(或不应该)用编辑器改变它
libs是不同的,因为一个是32位,另一个是64
请注意,一个dll会生成.lib,但它仅供您在编译时使用,重要的部分是dll本身,您可以删除.lib并执行.exe而不会出现问题