2

我已将旧的 Visual C++ 6.0 项目转换为新的 Visual C++ 2010 项目。它可以运行,但是我从旧项目中获取的构建后事件存在问题。它在计算机上注册了目标文件(一个 .ocx):

copy $(ProjDir)\PDFXChange\dll.Debug\*.* $(TargetDir) 
regsvr32 /s /c "$(TargetPath)" 
echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg"

在我的新解决方案中它不起作用。我还在单个命令中对其进行了测试:在三个命令(copy、regsvr32 和 echo)中,只有最后一个可以执行。什么可能是我的错误。

错误:

error MSB3073: The command "copy \PDFXChange\dll.Debug\*.* C:\_tests_\ocx2010\Debug\ 
regsvr32 /s /c "C:\_tests_\ocx2010\.\Debug\LayoutBox.dll" 
echo regsvr32 exec. time > ".\Debug\\regsvr32.trg"
:VCEnd" exited with code 3. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets

COPY 和 REGSVR32 似乎不起作用。

4

1 回答 1

0

问题出在宏 $(ProjDir) 的名称中。在 Visual C++ 2010 中,它是 $(ProjectDir)

$(ProjDir) -> $(项目目录)

一些宏改变了他们的名字(经过这么多年)!

命令copy \PDFXChange\dll.Debug*.* C: tests \ocx2010\Debug应该将一些 DLL 复制到下一个命令regsvr32 /s /c "C: tests \ocx2010.\Debug\LayoutBox.dll尝试的文件夹中注册目标文件。它在那里找不到任何DLL,所以它退出并显示错误消息。

于 2013-04-22T07:09:09.053 回答