32位vs 64位库装饰



我在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没有问题

最新更新