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