ObjectARX及MFC开发常见的问题及解决方法总结.docx

上传人:牧羊曲112 文档编号:4886952 上传时间:2023-05-21 格式:DOCX 页数:9 大小:718.97KB
返回 下载 相关 举报
ObjectARX及MFC开发常见的问题及解决方法总结.docx_第1页
第1页 / 共9页
ObjectARX及MFC开发常见的问题及解决方法总结.docx_第2页
第2页 / 共9页
ObjectARX及MFC开发常见的问题及解决方法总结.docx_第3页
第3页 / 共9页
ObjectARX及MFC开发常见的问题及解决方法总结.docx_第4页
第4页 / 共9页
ObjectARX及MFC开发常见的问题及解决方法总结.docx_第5页
第5页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《ObjectARX及MFC开发常见的问题及解决方法总结.docx》由会员分享,可在线阅读,更多相关《ObjectARX及MFC开发常见的问题及解决方法总结.docx(9页珍藏版)》请在三一办公上搜索。

1、工作中使用到ObjectARX及MFC开发遇 到的问题及解决1、提示microsoft incremental linker已停止工作解决方法表现为:编译没错,生成时,弹出错误窗口;解决:工程属性-配置属性-连接器-常规,启用增量连接想,选择否”图1参考网址:2,编译ARX程序时,提示:fatal error C1083:无法打开包括文件:“type_traitS : No such file or directory分析:主要是ARX中的头文件,引用了 MFC中的type_traits文件,而你的VS编译器可能没 有该文件解决:从别人的机子找到VS的安装目录,把这个头文件拷贝过来,放在相应的

2、位置上。路径为:D:Program FilesMicrosoft Visual Studio 9.0VCinclude (我的 VS 装在 D 盘,如果你的不是在D盘,去相应的盘符中查找)两个文件:type_traitsxxtype_traitstype_traits.rar文件1-VS2008的该文件,解压后放到上面说的目录下参考网址:3、从公司拷回来的工程,肯定是没有问题的,但是在自己 的机子上编译(用VS2008编译的,工程也是用VS2008创建的),但是提示:fatal error C1900: Il mismatch between P1 version 20080116 and P

3、2 version 20070207解决:没有安装VS2008SP1安装包,下载或者拷贝个安装包,安装下,在生成就没问题了。 参考网址:4、error LNK2005: _DllMain12 已经在 dllmain.obj 中 定义原因:你自己又定义了一个DllMain函数,而工程在创建的时候已经自动生成了一个DLLMain 函数;解决:方法1:如果你的DllMain没自己改写什么内容的话,直接删除自己定义的DllMain 函数就可;方法2:在DllMain文件中,加入如下代码,DLLMain函数之前,#ifdef _X86_extern C int _afxForceUSRDLL; #els

4、eextern C int _afxForceUSRDLL; #endif该代码的目的:起到了强制执行你自定义的dllmain函数的作用参考网址:5、自己编写ObjectARX程序,如果使用到对话框的话,就 应该注意一些工程属性方面的设置,从创建工程到设置如下:1、创建新工程时,在项目选项中选“MFC AppWizard(DLL)然后选MFC Extension DLL,然后 输入项目名步骤1步骤2完成了工程的创建,下面进行工程属性的设置。2、工程属性配置属性常规,右面的MFC的使用,选择“在共享DLL中使用MFC”步骤33、工程属性-配置属性-链接器-常规,右面的设置中,“输出文件”,后缀改

5、为.arx步骤44、工程属性-配置属性-C/C+-代码生成,右面的设置中,运行库项选多线程DLL(/MD).步骤55、设置arx的头文件(.h)和库文件(.cpp)步骤6至此,使用arx进行CAD二次开发的工程属性基本设置完成,开发没有对话框的工程,没有问题,之后就开始写代码即可。华丽的分割线下面的是使用对话框时,工程仍然需要进一步设置,这些设置都很重要,要是没有这些 设置,生成可能出错,而且,就算生成不出错,CAD加载了你编写的该arx,也会有问题,表现为:只能使用你编写的arx,其他功能都无法操作,包括:打开、关闭等。1、属性配置-C/C+-预处理器,右边的设置中,“预处理定义”,替换为_

6、WINDI;_AFXEXT步骤72、配置属性-链接器-高级,右边的设置,“入口点”,改为,DllMain12步骤8【注意】使用对话框的程序中,肯定要使用CAcModuleResourceOverride资源转换(原因这里就单独不解释),所以,在代码中,必须进行如下设置:AC_IMPLEMENT_EXTENSION_MODULE(emx)宏。emx用于提供缺省资源和模块资源,切换资源状态。AC_IMPLEMENT_EXTENSION_MODULE(theArxDLL);extern CBOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason,

7、 LPVOID lpReserved)/如果使用lpReserved,请将此移除UNREFERENCED_PARAMETER(lpReserved);if( dwReason = = DLL_PROCESS_ATTACH)theArxDLL.AttachInstance(hInstance);else if( dwReason = = DLL_PROCESS_DETACH)theArxDLL.DetachInstance();return TRUE;参考网址:http:/www.bimcad.org/thread-5777-1-1.html至此,使用arx的设置,包括使用对话框的时候,工程属性

8、的设置,终于完成了,之后的程序,不会再出现因为设置产生的错误了。华丽的分割线6、使用对话框时出现的错误:errorLNK2001:无法解析的外部符号private:staticclassCAcExtensionModule&CAcModuleResourceOverride:m_extensionModule(?m_extensionModuleCAcModuleResourceOverride0AAVCAcExtensionModuleA)1.安装源MyModeless.arx:fatalerrorLNK1120:1个无法解析的外部命令原因:CAcModuleResourceOverride使用的函数没有找到lib中的函数定义 解决:见5中工程设置的最后一部分7、生成没问题,CAD加载进编译好的arx,功能也可以使 用,但是CAD的其他命令不起作用,比如:打开、保存、 关闭以及其他arx的命令原因:你使用的arx把CAD锁定了解决:详见5中工程设置的步骤78、使用arx的框架问题方法:把arx的框架拷贝过来,在工程中修改成自己想定义的新工程名和文件名,不要在外面修改,在工程属性中修改其他信息,比如:图8

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号