0

我有一个奇怪的问题。我有一个针对两个 DLL 的 VS2010 C++ 解决方案和一个针对使用这两个 DLL 的应用程序的不同解决方案。到目前为止,对 DLL 的更改必须手动将它们复制到应用程序的相应目录中。

我现在介绍了一个构建后事件,以在每次构建时自动复制更改的 DLL。

copy $(TargetDir)$(TargetName).lib ..\..\lib\AppDir\$(TargetName).lib
copy $(TargetPath) ..\..\AppBinDir\$(TargetFileName)
copy $(TargetDir)$(TargetName).pdb ..\..\AppBinDir\$(TargetFileName)

当我在构建 DLL 后尝试启动应用程序时,我收到“无效图像”错误以及某些可能不适合 Windows 的解释。如果我使用 DependencyWalker 打开 DLL,我会收到错误“未找到 DOS 或 PE 签名”。

如果我手动复制 DLL,一切正常。所以我认为后期构建中的复制操作存在问题。

4

1 回答 1

1
copy $(TargetDir)$(TargetName).pdb ..\..\AppBinDir\$(TargetFileName)

此行使用 pdb 文件覆盖 Dll。可能你想要这样的东西:

copy $(TargetDir)$(TargetName).pdb ..\..\AppBinDir\$(TargetName).pdb
于 2012-08-27T08:24:22.640 回答