反向工程的问题

前段时间用过AX4.0的反向工程工具,没啥问题,今天却怎么也玩不转,倒是生成了一个Visio文件,但就是没有内容。跟踪了一下代码发现,AX会把反射得到的数据存到一个临时文件里,然后通过Visio COM对象的一个名为UML Background add-on的add-on将该临时文件导入到Visio文件中。导入的动作发生在类
SysVisionAddin的run->loadImportFile方法中,通过
addOn.run( strfmt( #addOnCommand, documentIndex, WinAPI::getShortPathName(importFile.parmImportFileName()) ) );
这行代码将其导入到当前刚创建好的Visio文件中,这跟在Visio中通过宏命令导入文件是一样的,但这个路径不知道咋整的,不支持中文,只要路径中包含中文上面的这个命令就没法执行了。
对这个不熟,不知道怎么改一下就可以让它支持中文路径,暂时的解决办法是:生成Visio文件不要存放到含有中文的路径下,比如含有 桌面 等的路径。

另外如果是Visio2007也不能导出成功,原因出在loadImportFile这个方法调用的getUmlAddOn方法上,这个方法会遍历当前Visio所有的Add-on,找到名称为"UML Background add-ond"的返回,获取Add-on的名称用的是addOn.name()这个方法,这在Visio2003下没有问题,但在Viso2007下,这个方法返回的是中文,在与"UML Background add-ond"比较时就出问题找不到对应的Add-on了。
AX5.0已经修复了这个bug,通过addOn.nameU()获取addon的名称,得到的是英文就没有比较的问题了。

综上所述:
1.Visio的导出路径不能包含中文;
2.如果使用的是Visio2007,将类SysVisioAddin的方法getUmlAddon的addOn.Name()改为addOn.NameU().

转载于:https://www.cnblogs.com/Farseer1215/archive/2007/12/15/996327.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值