用vs2003为acad2006开发的ARX怎样才能去掉兼容性警告?已解决

vs2002真的很难找,bt、电驴搜索、翻版光碟市场都找遍了,就是找不到。
用vs2003为acad2006开发的ARX,不能用appload加载,会显示加载失败,只能用ARX命令载入,但显示不兼容警告。有什么办法使acad认为这是vs2002开发的,从而成功加载呢?
网上找到了这篇文章
Peering Inside the PE: A Tour of the Win32 Portable Executable File Format
http://msdn.microsoft.com/en-us/library/ms809762.aspx
对我帮助很大。
用vs2003开发的ARX,dumpbin显示连接器(linker)的版本是7.10,而用vs2002开发的就显示7.00。下面就是7.10改7.00的方法:
打开命令提示符窗口,用dos命令 debug <arx文件名> ,把要改的arx文件装入到debug程序中,按d回车,debug一般把文件装入到0x0100起始的地址中(下面的数字如没有特殊指定一般都是十六进制)),d命令显示8行,也就是0100至017f,头两个字母肯定是“4D 5A”,也就是“MZ”,请注意013c-013f这4个字节,就是PE信息块地址,从我这个例子上看是0108,如图一所示。

这个0108还要加上debug的起始地址100就是0208才是真正的地址。键入debug命令D 0208,可以看到如图二的情景:

图二中,头两个字母一定要是PE,“50 45”,在距离0208地址0x14的地方有两个字节,表示PE文件头可选信息块的大小,其实所谓可选块已经是必有的啦。在我这个例子中是E0,其实只要不是0就行。在距离0208(PE信息头)0x18的地方,就是PE可选信息块的起始地址,那里必定是两个字节0b、01,是个标志,请注意,紧跟着就是连接器(Linker)的版本了,一共有两个字节,头字节是主版本号,第二个字节是次版本号,在我这里是0220行的第三、第四个数:07和0a。只要将0a改为00就行了。在我这里输入debug命令 E 223回车,系统提示0A,输入00回车。改好后输入debug命令w回车把文件保存。到2006中载入该arx程序,通过。当然只是不显示不兼容警告而已,要是程序真有不兼容的情况那还是会发生的。

posted on 2009-07-20 17:50 家1阳 阅读(846) 评论(2)  编辑 收藏 引用

评论

# re: 用vs2003为acad2006开发的ARX怎样才能去掉兼容性警告?已解决 2009-07-20 20:31 戴尔电脑

要程序真有不兼容的情况那还是会发生的。
  回复  更多评论   

# re: 用vs2003为acad2006开发的ARX怎样才能去掉兼容性警告?已解决 2009-07-25 16:30 99书城

学习了!  回复  更多评论   

只有注册用户登录后才能发表评论。

导航

<2009年7月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

统计

常用链接

留言簿(2)

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜