0

我们目前有一些针对 v5 R20 构建的自定义代码。我正在设置一台新机器来针对 v5 R23 构建相同的代码。我想我已经安装了所有东西,但是当我运行我们的构建脚本(调用 mkmk)时,我得到了很多错误,比如

Error in dictionary C:\CatV5\B23\SP2\intel_a\code\dictionary/CATStrFunctionalInterfaces.iid line 150
Can not add interface '{1C3E6229-7F5D-4d06-A4C7-6A95D6E5B1B4} CATIASfmSuperPlateObject SfmSuperPlate'

# syst-ERROR: [CreateProcess(""C:\Program")]: %1 is not a valid Win32 application.

谁能指出我正确的方向以找出这些错误的来源?

4

1 回答 1

2

当我从 R20 升级到 R22 时,我看到了这个确切的错误。这是不久前的事了,所以我很抱歉我不记得修复它的确切过程,但是,我确实记得我所做的所有事情,并且在升级到新版本时仍然会做,所以这应该有助于为您指明正确的方向。

在对这个错误进行故障排除期间,我注意到,无论我如何尝试,我都无法让 R20 项目在 R22 环境中编译。

我必须做的是创建我现有程序的布局和结构的精确副本。(创建接口,然后创建模块,就好像它是一个新程序一样)。我更改了它们的名称以匹配发布版本:即 ITSMyProgram -> ITSMyProgramR22。然后我创建了新的 UUID 并通过将 R22 添加到原始名称来重命名别名(这防止了 VBA 和 C# 中的混淆)。最后,我将原始代码变量和方法复制到新文件中。(注意:只有接口、别名、模块和类名被重命名——里面的方法应该没问题。还要确保不要覆盖新的 UUID。)在 C# 和 VBA 方面,我引用了新的别名。我在升级到 R23 时遵循了相同的过程,并且编译和运行代码没有问题。

如果这不起作用,请确保您在 Visual Studio 中安装了 64 位 c++ 编译器,并且您使用的是 2008 for R22 及更高版本。

也可以尝试以管理员身份运行。出于某种原因,.tlb 文件不会在 Windows 7 中注册并以管理员身份运行会解决此问题。

那里可能有更好的解决方案,但我更喜欢这个,因为我为 Catia 的每个版本级别都提供了一个新的干净界面,并且底层代码基本相同。

让我知道这是否有帮助。

于 2017-01-30T05:56:20.003 回答