高级会员
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
|
【转帖】缺少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中实现鼠标双击事件
发表评论
问题解决,请上此网址:,主页上全有
|