Как решить эту ошибку при построении кода CATIA CAA RADE

В настоящее время у нас есть некоторый пользовательский код, созданный для 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.

Может ли кто-нибудь указать мне в правильном направлении, чтобы узнать, откуда эти ошибки?


person Chris Wignall    schedule 16.11.2016    source источник


Ответы (1)


Я видел именно эту ошибку при обновлении с R20 до R22. Это было давно, поэтому я извиняюсь, что не помню точной процедуры исправления, однако я помню все, что делал и делаю до сих пор при обновлении до более новых версий, так что это должно помочь указать вам правильное направление.

Что-то, что я заметил во время устранения этой ошибки, заключалось в том, что, что бы я ни пытался, я не мог скомпилировать проект R20 в среде R22.

Что мне нужно было сделать, так это создать точную копию макета и структуры моей существующей программы. (Создайте интерфейс, а затем модуль, как если бы это была новая программа). Я изменил их имена, чтобы они соответствовали версии выпуска: например, ITSMyProgram -> ITSMyProgramR22. Затем я создал новые UUID и переименовал псевдоним, добавив R22 к исходному имени (это предотвратило путаницу в VBA и C#). Наконец, я копирую исходные переменные и методы кода в новые файлы. (Примечание: переименовываются только интерфейс, псевдонимы, модули и имена классов — методы внутри должны быть в порядке. Также убедитесь, что новые UUID не перезаписаны.) На стороне C# и VBA я ссылаюсь на новый псевдоним. Я следовал этой же процедуре при обновлении до R23, и у меня не было проблем с компиляцией и запуском кода.

Если это не сработает, убедитесь, что в Visual Studio установлен 64-разрядный компилятор C++ и что вы используете версию 2008 для R22 и выше.

Также, возможно, попробуйте запустить от имени администратора. По какой-то причине файл .tlb не будет зарегистрирован в Windows 7, и запуск от имени администратора исправит это.

Там может быть лучшее решение, но я предпочитаю это, поскольку я получаю новый чистый интерфейс для каждого уровня выпуска Catia, а базовый код практически одинаков.

Дайте мне знать, если что-то из этого помогло.

person Nathan    schedule 30.01.2017