![]() |
【转帖】缺少mfc70.lib
缺少mfc70.lib
缺少mfc70.lib 试图建立arx程序时,在编译后,提示 找不到 mfc70.lib 不是为什么? 我的编译环境是 vc.net 本人初学 objectarx 还望各位指教 程序是来自于 arxdev.chm ttt.def library "ttt" exports acrxentrypoint private acrxgetapiversion private ttt.cpp #include "stdafx.h" #include "ttt.h" #include "acutads.h" #include <rxregsvc.h> #include <aced.h> #include <rxmfcapi.h> void addcirclethroughmfccom() { return; } static void initapp() { acedregcmds->addcommand( "asdk_mfc_com", "asdkmfccomcircle", "mfccomcircle", acrx_cmd_modal, addcirclethroughmfccom); } static void unloadapp() { acedregcmds->removegroup("asdk_mfc_com"); } extern "c" acrx::appretcode acrxentrypoint(acrx::appmsgcode msg, void* appid) { switch(msg) { case acrx::kinitappmsg: // allow application to be unloaded // without this statement, autocad will // not allow the application to be unloaded // except on autocad exit. // acrxunlockapplication(appid); // register application as mdi aware. // without this statement, autocad will // switch to sdi mode when loading the // application. // acrxregisterappmdiaware(appid); initapp(); acutprintf("\nexample application loaded"); break; case acrx::kunloadappmsg: unloadapp(); acutprintf("\nexample application unloaded"); break; } return acrx::kretok; } 你装的vc版本不对不是 [arx] 我这有个东东可能对各位有用,不过我用的也是vs.net3也缺这个文件,现在正在找 好像上传不了,给大家一个链接地址 中国3s网络 ()|利用vc 7.1(vs .net 3)和objectarx开发autocad应用 添加收藏 设为首页 联系方式 首页 新闻中心 技术专栏 下载中心 3s社区 中国3s网络 → 技术专栏 → 开发专栏 利用vc 7.1(vs .net 3)和objectarx开发autocad应用 作者:3stech 自从微软的dotnet出来之后,美国的autodesk公司也曾经观望了一段时间,但最后还是将autocad及其开发工具包按照dotnet的框架标准作了一次重大修整。令人感觉哭笑不得的是,autocad4及其开发工具包诞生没多久,微软便将dotnet由7.0升到了7.1。这一升级没什么,关键是虽然微软将visual studio .net从7.0升到7.1没有作太大的改变,但他为了更符合c++标准在编译和连接上发生了一些重大变化。 这些变化给我们objectarx开发者带来的麻烦是:不能够使用vc 7.1建立objectarx 4及其以前的应用程序。由于早期atl和mfc库的版本不符合标准,所以新的编译器与其不兼容,但这些库在建立objectarx时是需要的,因为它依赖autodesk库。另一方面,虽然vc 7.1给我们开发objectarx带来了这么大的麻烦,但其性能确实比7.0有较大的提高,而且更符合国际标准,所以,从我本人来讲希望能够通过vc 7.1开发objectarx应用。谁让我们是“追随者”呢!j 在objectarx wizards for autocad 5 information的安装警告中autodesk作了如下声明: - visual c++ 7.0 (part of visual studio .net 2) must be used when building objectarx applications for autocad 4 and 5. - objectarx applications built with any other compiler version (such as visual c++ 7.1, part of visual studio .net 3) will prompt a warning when loaded by autocad 4 or 5. these applications may also cause issues at runtime due to the incompatibility of mfc and c-runtime dlls between visual c++ 7.0 and 7.1. if you choose to go ahead with developing with visual studio .net 3, we strongly recommend you use visual studio .net 2 for building and testing your objectarx application. 由此我们可知,在生成autocad 4和5的objectarx应用时,我们目前仍然必须使用visual c++ 7.0,但我们可以使用其他版本的编译器(如,visual c++ 7.1)来编写代码。如果你在autocad 4或5中加载visual c++ 7.1编译生成的应用程序,运行时将可能会产生问题。这个问题实际上是由visual c++ 7.0和7.1之间的mfc和c运行时动态库不兼容引起的。所以,下面的解决方案实际上是使用了两种mfc和c运行时库。 要使用vc 7.1建立autocad 4/5应用,首先要具备以下条件: l 安装了autocad 4或autocad 5。 l objectarx 4或5的开发工具包,需注意的是,要使用向导工具,则需要下载可以在.net 3上安装的包。以下地址有下载: l 安装有visual studio .net 3(7.1)及microsoft .net framework 1.1。 l 有visual studio .net 2库及其相关包含文件。 我们具备了以上条件之后,为了更加方便地在所建vc项目配置中引用包含目录和库目录,需要配置如下的关于objectarx和vc的系统环境变量,当然你不一定要全配,这要看你所使用的autocad版本、objectarx开发包。 你可以按照以下的目录存放objectarx开发工具包,并按表中所示命名系统环境变量: 环境变量值描述 arx1e:\sdk\arx1arx 1.0 sdk (r13) arx2e:\sdk\arx202objectarx 2.02 sdk (r14) arx0e:\sdk\arx0objectarx 0 sdk arx0ie:\sdk\arx0iobjectarx 0i sdk arx2e:\sdk\arx2objectarx 2 sdk arx4e:\sdk\arx4objectarx 4 sdk arx5e:\sdk\arx5objectarx 5 sdk 对于vc开发环境中的系统变量配置如下: 环境变量值描述 msvc42e:\vclibs\vc42microsoft visual c++ 4.2 msvc6e:\vclibs\vc6microsoft visual c++ 6.0 msvc7e:\vclibs\vc7microsoft visual c++ 7.0 msvc71安装目录microsoft visual c++ 7.1 其中配置路径下放置的是包含文件和库文件。 有了环境变量,我们就可以方便地在用objectarx的vc项目中,按照下表的要求,配置c/c++的“常规”属性页的“附加包含目录”(对应下面的包含路径),以及链接器的“常规”属性页的“附加库目录”(对应下面的库路径)。对于autocad 4和5你可以用向导工具在vc 7.1中创建objectarx项目,但对于autocad 4以下的版本需要以动态链接库的模式来建立objectarx应用。 版本包含路径 库路径 vc 4.2$(msvc42)\include;$(msvc42)\mfc\include $(msvc42)\lib;$(msvc42)\mfc\lib vc 6$(msvc6)\include;$(msvc6)\mfc\include;$(msvc6)\atl\include $(msvc6)\lib;$(msvc6)\mfc\lib;$(msvc6)\atl\lib vc 7$(msvc7)\include;$(msvc7)\atlmfc\include $(msvc7)\lib;$(msvc7)\atlmfc\lib vc 7.1$(msvc71)\include;$(msvc71)\atlmfc\include $(msvc71)\lib;$(msvc71)\atlmfc\lib 包含路径配置示例如下: 库路径配置示例如下: 另外,对于autocad 0/2,工程属性中的“调试信息格式”不能使用“用于’编辑并继续’的程序数据库(/zi)”,除此之外都可以。还需要并设置“启用增量链接”为“否(/incremental:no)”。 如果你使用的是vc6的库,则需要在工程属性àc/c++à代码生成中将“缓冲区安全检查”设置为“否”。另外,如果你使用了_ftol函数,则需要在你的.cpp文件(例如,stdafx.cpp)中作如下的声明: #if (_msc_ver >= 1300) && (winver < 0x0500) //vc7 or later, building with pre-vc7 runtime libraries extern "c" long _ftol( double ); //defined by vc6 c libs extern "c" long _ftol2( double dblsource ) { return _ftol( dblsource ); } #endif 如果你还使用了/delayload特性,则请不要使用vc6的delayimp.lib文件,你可以使用“$(vcinstalldir)lib\delayimp.lib”。 当然,除了以上问题很可能还会发现新的问题,谁让我们非要“张冠李戴”呢! 现在你不要高兴就完事了,如果用vc 7(vs .net 2)的话,按照以上的做法就可以了,但毕竟我们用的是vc 7.1(vs .net 3)。我试过好多次试验都不行,怎么办呢? 我们幸运的是,已经有人为我们解决好了。manusoft(好像是一个专门做autocad扩展工具的,有空可以去逛逛)做了一个工具,叫vcbuildbook。它是一个免费的小工具,大家不用担心付费的问题。不过开发者也声明:对于由此工具带来的一切损失具不负责。请点此下载:vcbuildhooksetup.msi,目前版本是1.1.1.0。下载完后运行它安装之就可以了。 安装完毕后,再打开我们创建的vc项目,在项目对应的属性工具栏会出现“usevc7paths”属性,当我们开发objectarx时,将此属性设为yes即可。此工具除了具有重定向编译链接之外,还有一项优化编译链接功能(在解决方案属性页中有一个lowprioritybuild项)。 如果你实在觉得这么做比较麻烦,也可以将vc 7.1与vc 7同时安装。先装vc 7.1再装vc 7,这就看个人喜好了。j 来源:中国3s 阅读:2325 次 日期:4-10-28 【 双击滚屏 】 【 推荐朋友 】 【 评论 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体:大 中 小 】 上一篇:走向世界的中国3s技术——武汉大学测绘学科 下一篇:[转帖]3s在基本农田保护技术及规划方法的革新中的作用 >> 相关文章 [原创]objectarx中右键(快捷)菜单的实现方法 [原创]如何在autocad中实现鼠标双击事件 发表评论 问题解决,请上此网址:,主页上全有 |
所有的时间均为北京时间。 现在的时间是 05:00 AM. |