缺少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 <rxregsvc.h><br>
#include <aced.h><br>
#include <rxmfcapi.h><br>
<br>
void addCircleThroughMfcCom()<br>
{<br>
return;<br>
}<br>
<br>
static void initApp()<br>
{<br>
acedRegCmds->addCommand(<br>
"ASDK_MFC_COM", <br>
"AsdkMfcComCircle",<br>
"MfcComCircle", <br>
ACRX_CMD_MODAL, <br>
addCircleThroughMfcCom);<br>
}<br>
<br>
static void unloadApp()<br>
{<br>
acedRegCmds->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>
你装的vc版本不对不是2002net
我也碰到了你这个问题
我想你也是用的vs。2003吧
[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 >= 1300) && (WINVER < 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在基本农田保护技术及规划方法的革新中的作用
>> 相关文章 <BR> <BR> [原创]ObjectARX中右键(快捷)菜单的实现方法<BR> [原创]如何在AutoCAD中实现鼠标双击事件<BR> 发表评论 问题解决,请上此网址:<A href="http://www.ist3d.com/" target="_blank" >http://www.ist3d.com</A>,主页上全有 http://bbs.mjtd.com/forum.php?mod=redirect&goto=findpost&ptid=23876&pid=161168&fromuid=370464
页:
[1]