daoxiangcun 发表于 2009-2-26 16:19

我也挺奇怪,按理说"CATMmuDebugCAA"应该作为一个module存在于CAAMechanicalModeler这个Framework下面,但是我并没有找到这个Module。
我再看看吧,如果找到了原因再告诉你。如果你有时间的话也再帮忙看看,谢谢啊!

daoxiangcun 发表于 2009-2-27 16:24

供参考的结果

查了很长时间,对话框的具体代码仍然是不知所踪,不过找到了其资源文件:CATMmuDebugCAADlg.CATNls,其位置位于:Catia目录\intel_a\resources\msgcatalog\CATMmuDebugCAADlg.CATNls下。

而在CAAMechanicalModeler.edu\CAAMmrDebugPrtWksAddin.m这个module下的CAAMmrDebugAdn.cpp这个文件中有:
void CAAMmrDebugAdn::CreateCommands()
{
// CAAMmrDebugJournalHdr : identifier of the command header
// CATMmuDebugCAA      : name of the mechanical modeler command class
// CATMmuDebugCAA      : name of the module exporting the mechanical modeler command
// NULL                  : no argument for the CATMmuDebugCAA command class
new CAAMmrDebugAddinHeader("CAAMmrDebugJournalHdr",
                           "CATMmuDebugCAA",
                           "CATMmuDebugCAA", (void *)NULL);
}
所以应当来说,引起响应的应该是CATMmuDebugCAA这个module,但是事实上并不是,因为CATMmuDebugCAADlg.CATNls这个资源文件是位于CATIA目录下的,可能是它下面某个module的。但是不知道其代码究竟在哪里。

给大家一些参考,希望能够给点指点啊,谢谢!

huright 发表于 2009-2-27 17:47

问题是没有资源文件,也是那样的结果

zjj04640451 发表于 2009-4-3 09:19

详细的看看了,收获真是不少。等下要照着练习了

daoxiangcun 发表于 2009-6-18 13:22

好久没来,我来帖一个这个问题的答案吧。
这个module的库文件位置:
Catia目录\intel_a\code\bin\CATMmuDebugCAA.dll
Catia目录\intel_a\code\lib\CATMmuDebugCAA.lib
资源文件位于:
Catia目录\intel_a\resources\msgcatalog\CATMmuDebugCAADlg.CATNls
是CATIA自身系统带的文件。
打开CATMmuDebugCAA.dll可以看到两个函数:
DASSAULT_SYSTEMES_CAA2_INTERNAL_CATMmuDebugCAA
fctCreateCATMmuDebugCAA
其中第一个函数是CATIA生成的一个函数,其最后的“CATMmuDebugCAA”表示module的名称,这正好与文件中相对应。而第二个函数则是这个module中的类名,其中fctCreate这个前缀是CATIA自己加上去的,其后面的CATMmuDebugCAA是其中的类的名字,一般是Command的名字,而这个Command对应的Dlg名称是不会显示的,所以也就造成了我们看不到这个命令对应的对话框的文件这一情况。因为它们都存在了dll文件中,源代码是看不到的。
我想大概应该是这样。

huashanjianke 发表于 2010-3-21 12:52

回复 地板 huright 的帖子

哥们,你是搞caa的啊,我这几天正在学呢,那个caa文档怎么看啊,全英文啊,而且那么多,很头痛,给点建议吧,谢谢

黄礼晗欢 发表于 2010-4-26 19:42

ChaChing 发表于 2010-4-26 20:32

楼上属广告帖请删除! 已禁止访问! 一一报告还需等45秒! 没时间等:@Q
处理完记得也删除此帖
页: 1 [2]
查看完整版本: 二次开发中对话框的两个问题