程序本来是ObjectARX 2006 + VC2002写的,在AutoCAD2006上可以运行.
尝试在AutoCAD2004上运行,成功.
尝试在AutoCAD2008上运行,无法加载.
于是把头文件和库都改为ObjectARX 2008的,但是开发环境仍然是VC2002,编译时报错如下:AdAChar.h(36) : fatal error C1189: #error : Please use native wchar_t type (/Zc:wchar_t)在项目属性中的"C++"中的"语言"中打开"/Zc:wchar_t",然后继续编译,报错如下(包括后面还有一种):arxEntryPoint.h(140) : error C2664: “LoadStringA” : 不能将参数 3 从“ACHAR [133]”转换为“LPSTR”
与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换网上有人说需要把字符串全部用TEXT宏包含,但是我发现如果我用ObjectARX 2008 加 VC2008写一个程序,自己的的类(其实就是自己的2006中的类)中的字符串并不必须用TEXT宏包含一样可以建立运行,而且目前程序中用到了VC6中的一些类全用TEXT宏改也不太现实,关键是我感觉不全是这个原因.因为有的错误是必须用TEXT宏来解决的,如下面的错误:error C2664: “acutPrintf” : 不能将参数 1 从“char [80]”转换为“const ACHAR *”
与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换有兄弟姐妹知道怎么解决这个问题吗?另外我还有个疑问,在ObjectARX 2008\docs\arxdoc.chm文档中有如下一段,不是说ObjectARX 2006的程序可以在AutoCAD 2008上运行吗?还是不是这么个意思?API Compatibility
Binary compatibility between AutoCAD 2007 and AutoCAD 2008 has been maintained. Applications built with ObjectARX for AutoCAD 2007 and ObjectARX for AutoCAD 2006 will continue to run in AutoCAD 2008, but applications built using ObjectARX for AutoCAD 2008 may not work with previous releases.
尝试在AutoCAD2004上运行,成功.
尝试在AutoCAD2008上运行,无法加载.
于是把头文件和库都改为ObjectARX 2008的,但是开发环境仍然是VC2002,编译时报错如下:AdAChar.h(36) : fatal error C1189: #error : Please use native wchar_t type (/Zc:wchar_t)在项目属性中的"C++"中的"语言"中打开"/Zc:wchar_t",然后继续编译,报错如下(包括后面还有一种):arxEntryPoint.h(140) : error C2664: “LoadStringA” : 不能将参数 3 从“ACHAR [133]”转换为“LPSTR”
与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换网上有人说需要把字符串全部用TEXT宏包含,但是我发现如果我用ObjectARX 2008 加 VC2008写一个程序,自己的的类(其实就是自己的2006中的类)中的字符串并不必须用TEXT宏包含一样可以建立运行,而且目前程序中用到了VC6中的一些类全用TEXT宏改也不太现实,关键是我感觉不全是这个原因.因为有的错误是必须用TEXT宏来解决的,如下面的错误:error C2664: “acutPrintf” : 不能将参数 1 从“char [80]”转换为“const ACHAR *”
与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换有兄弟姐妹知道怎么解决这个问题吗?另外我还有个疑问,在ObjectARX 2008\docs\arxdoc.chm文档中有如下一段,不是说ObjectARX 2006的程序可以在AutoCAD 2008上运行吗?还是不是这么个意思?API Compatibility
Binary compatibility between AutoCAD 2007 and AutoCAD 2008 has been maintained. Applications built with ObjectARX for AutoCAD 2007 and ObjectARX for AutoCAD 2006 will continue to run in AutoCAD 2008, but applications built using ObjectARX for AutoCAD 2008 may not work with previous releases.
解决方案 »
- Flexgrid控件的右键操作问题
- 图标透明的问题
- 今天看了一个注册表的类,其中typedef 这个语句的定义不太明白,请求大家帮助!
- 关于主动式ftp中端口20的问题
- 各位大侠能不能讲讲UDP校验和原理并给一份计算校验和的源程序
- 对于一个ctreectrl,当鼠标右键点击时如何区分点击的是节点的image,还是节点的文本,还是除节点image和文本的其他部分。
- 文件操作高手求教!!!
- 能不能直接修改listbox里的值
- 我想研究学习软件管家?
- 请问如何用select * from dtA while dtImage=%s 实现查询image字段
- 大侠都看过来啊,谁有数字图像处理第二版中文版(冈萨雷斯)的源代码啊?
- 如何在CHTMLView中绘制矩形
2005anjob你说的对哈突然才恍过神来...
cloudlove按照你说的方法做了,能编译通过了~~~!你太帅了~~~呵呵
可是链接无法通过,应该正如2005anjob所说的原因...
那现在的问题就是如何在vc2002的环境中链接vc2005的mfc8的lib等等呢?
另外:
据我所知,vc6,7,8,9分别对应arx的15,16,17,18.
你编译错误应该是版本对应的不正确。
我现在都要绝望了....没办法我退了一步,我把VC2000的工程首先改成了TEXT宏的"兼容"写法,然后用VC2005打开,然后转换,然后该工程的字符集为Unicode,然后把 C++的附加包含目录/using应用目录 以及链接的附加目录都改成对应的ObjectARX 2008的路径,然后编译,链接,加载,运行,OK,成功了...你说的没错啊在VC2005里面做当然是最好了啊,可是客户也有在使用低版本的CAD啊,这样如果我同时用VC2002/2005就需要维护两套代码了啊...麻烦而且容易关键容易出错.所以我觉得最好的解决方案就是同一个工具只是包含的头文件啊库啊什么的不同就可以了.现在看起来暂时不是很好的解决了...看看有更好的解决方法吗?
r16 2004-2006
r17 2007-2009
r18 2010
2年前我也遇到过
和LZ一样尝试了不同的方法,都是没用
最后还是用了vs2005
呵呵
别浪费时间了,换编译器吧ps:办法应该也是有的。。但我当时真没试验出来,唉Arx想起来了以前的自己,现在在做手机了,怀念那时的日子