y_dw2001 发表于 2004-7-24 01:45:00

缺少mfc70.lib

<br>
试图建立arx程序时,在编译后,提示 找不到 mfc70.lib       不是为什么?<br>
我的编译环境是       vc.net       本人初学 ObjectARX               还望各位指教<br>
<br>
程序是来自于 arxdev.chm <br>
<br>
ttt.def<br>
<br>
LIBRARY "ttt"<br>
<br>
EXPORTS<br>
                       acrxEntryPoint PRIVATE<br>
                       acrxGetApiVersion PRIVATE<br>
<br>
<br>
ttt.cpp<br>
<br>
#include "stdafx.h"<br>
#include "ttt.h"<br>
#include "acutads.h"<br>
#include &lt;rxregsvc.h&gt;<br>
#include &lt;aced.h&gt;<br>
#include &lt;rxmfcapi.h&gt;<br>
<br>
void addCircleThroughMfcCom()<br>
{<br>
                       return;<br>
}<br>
<br>
static void initApp()<br>
{<br>
                       acedRegCmds-&gt;addCommand(<br>
                                                       "ASDK_MFC_COM", <br>
                                                       "AsdkMfcComCircle",<br>
                                                       "MfcComCircle", <br>
                                                       ACRX_CMD_MODAL, <br>
                                                       addCircleThroughMfcCom);<br>
}<br>
<br>
static void unloadApp()<br>
{<br>
                       acedRegCmds-&gt;removeGroup("ASDK_MFC_COM");<br>
}<br>
<br>
<br>
extern "C" AcRx::AppRetCode<br>
acrxEntryPoint(AcRx::AppMsgCode msg, void* appId)<br>
{<br>
<br>
                       switch(msg) {<br>
<br>
                       case AcRx::kInitAppMsg:<br>
                                                       // Allow application to be unloaded<br>
                                                       // Without this statement, AutoCAD will<br>
                                                       // not allow the application to be unloaded<br>
                                                       // except on AutoCAD exit.<br>
                                                       //<br>
                                                       acrxUnlockApplication(appId);<br>
<br>
                                                       // Register application as MDI aware.<br>
                                                       // Without this statement, AutoCAD will<br>
                                                       // switch to SDI mode when loading the<br>
                                                       // application.<br>
                                                       //<br>
                                                       acrxRegisterAppMDIAware(appId);<br>
                                                       initApp(); <br>
                                                       acutPrintf("\nExample Application Loaded");<br>
                       break;<br>
<br>
                       case AcRx::kUnloadAppMsg:<br>
                                              unloadApp(); <br>
                                                       acutPrintf("\nExample Application Unloaded");<br>
                       break;<br>
                       }<br>
                       return AcRx::kRetOK;<br>
}<br>
<br>

zyx 发表于 2004-8-11 01:58:00

你装的vc版本不对不是2002net


我也碰到了你这个问题


我想你也是用的vs。2003吧

lw1980728 发表于 2005-6-13 12:37:00

[ARX]

本帖最后由 作者 于 2005-6-13 13:29:42 编辑 <br /><br /> 我这有个东东可能对各位有用,不过我用的也是vs.net2003也缺这个文件,现在正在找


好像上传不了,给大家一个链接地址


中国3S网络 (<A href="http://www.863s.com/" target="_blank" >http://www.863s.com</A>)|利用VC 7.1(VS .NET 2003)和ObjectARX开发AutoCAD应用<BR>                                                       添加收藏<BR>                                                                                               设为首页<BR>                                                                                               联系方式


<BR>                                       首页       新闻中心       技术专栏       下载中心 3S社区


                                                       中国3S网络 → 技术专栏 → 开发专栏


<BR>                                       利用VC 7.1(VS .NET 2003)和ObjectARX开发AutoCAD应用<BR>                                                                                       作者:3STech


<BR>                                       自从微软的DotNET出来之后,美国的Autodesk公司也曾经观望了一段时间,但最后还是将AutoCAD及其开发工具包按照DotNET的框架标准作了一次重大修整。令人感觉哭笑不得的是,AutoCAD2004及其开发工具包诞生没多久,微软便将DotNET由7.0升到了7.1。这一升级没什么,关键是虽然微软将Visual <BR>                                       Studio .NET从7.0升到7.1没有作太大的改变,但他为了更符合C++标准在编译和连接上发生了一些重大变化。<BR>                                       这些变化给我们ObjectARX开发者带来的麻烦是:不能够使用VC 7.1建立ObjectARX <BR>                                       2004及其以前的应用程序。由于早期ATL和MFC库的版本不符合标准,所以新的编译器与其不兼容,但这些库在建立ObjectARX时是需要的,因为它依赖Autodesk库。另一方面,虽然VC <BR>                                       7.1给我们开发ObjectARX带来了这么大的麻烦,但其性能确实比7.0有较大的提高,而且更符合国际标准,所以,从我本人来讲希望能够通过VC <BR>                                       7.1开发ObjectARX应用。谁让我们是“追随者”呢!J<BR>                                       在ObjectARX Wizards for AutoCAD 2005 Information的安装警告中Autodesk作了如下声明:<BR>                                       - Visual C++ 7.0 (part of Visual Studio .NET 2002) must be used when <BR>                                       building ObjectARX applications for AutoCAD 2004 and 2005.<BR>                                       - ObjectARX applications built with any other compiler version (such as <BR>                                       Visual C++ 7.1, part of Visual Studio .NET 2003) will prompt a warning <BR>                                       when loaded by AutoCAD 2004 or 2005. These applications may also cause <BR>                                       issues at runtime due to the incompatibility of MFC and C-runtime DLLs <BR>                                       between Visual C++ 7.0 and 7.1. If you choose to go ahead with developing <BR>                                       with Visual Studio .NET 2003, we strongly recommend you use Visual Studio <BR>                                       .NET 2002 for building and testing your ObjectARX application.<BR>                                       由此我们可知,在生成AutoCAD 2004和2005的ObjectARX应用时,我们目前仍然必须使用Visual C++ <BR>                                       7.0,但我们可以使用其他版本的编译器(如,Visual C++ 7.1)来编写代码。如果你在AutoCAD 2004或2005中加载Visual <BR>                                       C++ 7.1编译生成的应用程序,运行时将可能会产生问题。这个问题实际上是由Visual C++ <BR>                                       7.0和7.1之间的MFC和C运行时动态库不兼容引起的。所以,下面的解决方案实际上是使用了两种MFC和C运行时库。<BR>                                       要使用VC 7.1建立AutoCAD 2004/2005应用,首先要具备以下条件:<BR>                                       l                       安装了AutoCAD 2004或AutoCAD 2005。<BR>                                       l                       ObjectARX 2004或2005的开发工具包,需注意的是,要使用向导工具,则需要下载可以在.NET <BR>                                       2003上安装的包。以下地址有下载:<BR>                                       <A href="http://adn.autodesk.com/liveupdate/wizards2005.zip" target="_blank" >http://adn.autodesk.com/liveupdate/wizards2005.zip</A><BR>                                       l                       安装有Visual Studio .NET 2003(7.1)及Microsoft .NET Framework 1.1。<BR>                                       l                       有Visual Studio .NET 2002库及其相关包含文件。<BR>                                       我们具备了以上条件之后,为了更加方便地在所建VC项目配置中引用包含目录和库目录,需要配置如下的关于ObjectARX和VC的系统环境变量,当然你不一定要全配,这要看你所使用的AutoCAD版本、ObjectARX开发包。<BR>                                       你可以按照以下的目录存放ObjectARX开发工具包,并按表中所示命名系统环境变量:<BR>                                                                                       环境变量值描述<BR>                                                                                       ARX1E:\SDK\ARX1ARX 1.0 SDK (R13)<BR>                                                                                       ARX2E:\SDK\ARX202ObjectARX 2.02 SDK (R14)<BR>                                                                                       ARX2000E:\SDK\ARX2000ObjectARX 2000 SDK<BR>                                                                                       ARX2000iE:\SDK\ARX2000iObjectARX 2000i SDK<BR>                                                                                       ARX2002E:\SDK\ARX2002ObjectARX 2002 SDK<BR>                                                                                       ARX2004E:\SDK\ARX2004ObjectARX 2004 SDK<BR>                                                                                       ARX2005E:\SDK\ARX2005ObjectARX 2005 SDK


                                       对于VC开发环境中的系统变量配置如下:<BR>                                                                                       环境变量值描述<BR>                                                                                       MSVC42E:\VCLIBS\VC42Microsoft Visual C++ 4.2<BR>                                                                                       MSVC6E:\VCLIBS\VC6Microsoft Visual C++ 6.0<BR>                                                                                       MSVC7E:\VCLIBS\VC7Microsoft Visual C++ 7.0<BR>                                                                                       MSVC71安装目录Microsoft Visual C++ 7.1


                                       其中配置路径下放置的是包含文件和库文件。<BR>                                       有了环境变量,我们就可以方便地在用ObjectARX的VC项目中,按照下表的要求,配置C/C++的“常规”属性页的“附加包含目录”(对应下面的包含路径),以及链接器的“常规”属性页的“附加库目录”(对应下面的库路径)。对于AutoCAD <BR>                                       2004和2005你可以用向导工具在VC 7.1中创建ObjectARX项目,但对于AutoCAD <BR>                                       2004以下的版本需要以动态链接库的模式来建立ObjectARX应用。<BR>                                                                                       版本包含路径<BR>                                                                                       库路径<BR>                                                                                       VC 4.2$(MSVC42)\Include;$(MSVC42)\MFC\Include<BR>                                                                                       $(MSVC42)\Lib;$(MSVC42)\MFC\Lib<BR>                                                                                       VC 6$(MSVC6)\Include;$(MSVC6)\MFC\Include;$(MSVC6)\ATL\Include<BR>                                                                                       $(MSVC6)\Lib;$(MSVC6)\MFC\Lib;$(MSVC6)\ATL\Lib<BR>                                                                                       VC 7$(MSVC7)\Include;$(MSVC7)\ATLMFC\Include<BR>                                                                                       $(MSVC7)\Lib;$(MSVC7)\ATLMFC\Lib<BR>                                                                                       VC 7.1$(MSVC71)\Include;$(MSVC71)\ATLMFC\Include<BR>                                                                                       $(MSVC71)\Lib;$(MSVC71)\ATLMFC\Lib


                                       包含路径配置示例如下:


                                       库路径配置示例如下:


                                       另外,对于AutoCAD <BR>                                       2000/2002,工程属性中的“调试信息格式”不能使用“用于’编辑并继续’的程序数据库(/ZI)”,除此之外都可以。还需要并设置“启用增量链接”为“否(/INCREMENTAL:NO)”。<BR>                                       如果你使用的是VC6的库,则需要在工程属性àC/C++à代码生成中将“缓冲区安全检查”设置为“否”。另外,如果你使用了_ftol函数,则需要在你的.cpp文件(例如,stdafx.cpp)中作如下的声明:<BR>                                       #if (_MSC_VER &gt;= 1300) &amp;&amp; (WINVER &lt; 0x0500)<BR>                                       //VC7 or later, building with pre-VC7 runtime libraries<BR>                                       extern "C" long _ftol( double ); //defined by VC6 C libs<BR>                                       extern "C" long _ftol2( double dblSource ) { return _ftol( dblSource ); }<BR>                                       #endif<BR>                                       如果你还使用了/DELAYLOAD特性,则请不要使用VC6的delayimp.lib文件,你可以使用“$(VcInstallDir)lib\delayimp.lib”。<BR>                                                                                                       当然,除了以上问题很可能还会发现新的问题,谁让我们非要“张冠李戴”呢!<BR>                                                                                                       现在你不要高兴就完事了,如果用VC 7(VS .NET 2002)的话,按照以上的做法就可以了,但毕竟我们用的是VC 7.1(VS <BR>                                       .NET 2003)。我试过好多次试验都不行,怎么办呢?<BR>                                                                                                       <BR>                                       我们幸运的是,已经有人为我们解决好了。ManuSoft(好像是一个专门做AutoCAD扩展工具的,有空可以去逛逛)做了一个工具,叫VCBuildBook。它是一个免费的小工具,大家不用担心付费的问题。不过开发者也声明:对于由此工具带来的一切损失具不负责。请点此下载:VCBuildHookSetup.msi,目前版本是1.1.1.0。下载完后运行它安装之就可以了。<BR>                                                                                                       <BR>                                       安装完毕后,再打开我们创建的VC项目,在项目对应的属性工具栏会出现“UseVC7Paths”属性,当我们开发ObjectARX时,将此属性设为Yes即可。此工具除了具有重定向编译链接之外,还有一项优化编译链接功能(在解决方案属性页中有一个LowPriorityBuild项)。<BR>                                                                                                       如果你实在觉得这么做比较麻烦,也可以将VC 7.1与VC 7同时安装。先装VC 7.1再装VC 7,这就看个人喜好了。J



                                                                                       来源:中国3S<BR>                                                                                       阅读:2325 次<BR>                                                                                       日期:2004-10-28


<BR>                                                                                       【 双击滚屏 】 【 推荐朋友 】 【 评论 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体:大 中 小 】       <BR>                                                                                       上一篇:走向世界的中国3S技术——武汉大学测绘学科<BR>                                                                                       下一篇:[转帖]3s在基本农田保护技术及规划方法的革新中的作用


                                                       &gt;&gt; 相关文章 <BR>                                                       <BR>                                                       [原创]ObjectARX中右键(快捷)菜单的实现方法<BR>                                                       [原创]如何在AutoCAD中实现鼠标双击事件<BR>                                       发表评论

lw1980728 发表于 2005-6-20 11:11:00

问题解决,请上此网址:<A href="http://www.ist3d.com/" target="_blank" >http://www.ist3d.com</A>,主页上全有

842986480 发表于 2011-12-12 15:08:41

http://bbs.mjtd.com/forum.php?mod=redirect&goto=findpost&ptid=23876&pid=161168&fromuid=370464
页: [1]
查看完整版本: 缺少mfc70.lib