|
发表于 2009-8-21 11:55:00
|
显示全部楼层
您说的添加lib是在属性页中加吗?我刚开始学习arx,还没入门,很多东西不清楚,您能加我qq吗?67086887,我拜你为师^_^,我是按下面的教程做的,请你给指点下什么地方有问题。
1.1 创建一个ObjectARX 项目
运行Visual C++ .NET,然后逐步创建第一个ObjectARX 应用:
1.从Visual C++ .NET 的菜单,选择[文件] >[新建]>[项目…]>[VC++ 项目]>[Win32 项
目];
2.键入新项目的存放路径和项目名称,如“d:”,“Step01”;(图1.1.2)
3.单击[完成],弹出[Win 32 应用程序向导]对话框;
4.选择[应用程序设置]属性页,在“应用程序类型:”中选择 "DLL";(图1.1.4)
5.单击[完成],即完成了一个新项目的创建。
1.2 设置编译器
1.从Visual C++ .NET 的菜单,选择[视图]>[属性页],弹出“属性页”对话框;
2.在[配置]下拉列表中,选择“所有配置”;(图1.2)
3.选择[C/C++]节点,进行如下设置:
[常规]/[附加包含目录]设置为:C:\Program Files\Autodesk\ObjectARX2006\inc
[常规]/[警告等级]设置为:1 级 (/W1)
[常规]/[检测64 位可移植性问题]设置为:否
[代码生成]/[运行时库]设置为:多线程 DLL (/MD)
4.单击[应用],完成编译器的设置。
1.3 设置链接器
1.选择[链接器]节点,进行如下设置:
[常规]/[输出文件]设置为:$(OutDir)/Step01.arx
[常规]/[附加库目录]设置为:C:\Program Files\Autodesk\ObjectARX2006\lib
[ 输入]/[ 附加依赖项] 设置为: rxapi.lib acdb16.lib acge16.lib acad.lib
acedapi.lib
2.单击[完成],完成链接器的设置。
1.4 添加代码
1.4.1 创建一个新的cpp 文件
(1)从Visual C++ .NET 的菜单,选择[项目] >[添加新项],弹出“添加新项”对话框;
(2)在[添加新项]下拉列表中,选择“C++ 文件 (.cpp)”;
(3)键入存放路径“d:\Step01\”和文件名“HelloWorld”;
(4)单击[打开],创建了一个空的cpp 文件。
1.4.2 添加代码
在HelloWorld.cpp 窗口,添加如下代码:
#include "stdafx.h"
#include
#include
void initApp();
void unloadApp();
void helloWorld();
void initApp()
{
// register a command with the AutoCAD command mechanism
acedRegCmds->addCommand("HELLOWORLD_COMMANDS",
"Hello",
"Bonjour",
ACRX_CMD_TRANSPARENT,
helloWorld);
}
void unloadApp()
{
acedRegCmds->removeGroup("HELLOWORLD_COMMANDS");
}
void helloWorld()
{
acutPrintf("\nHello World!"); //实现本程序的具体功能
}
extern "C" AcRx::AppRetCode
acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt)
{
switch (msg)
{
case AcRx::kInitAppMsg:
acrxDynamicLinker->unlockApplication(pkt);
acrxRegisterAppMDIAware(pkt);
initApp();
break;
case AcRx::kUnloadAppMsg:
unloadApp();
break;
default:
break;
}
return AcRx::kRetOK;
}
为了使AutoCAD 能访问acrxEntryPoint()函数,还需要创建一个def 文件。
1.5 创建DEF 文件
1.5.1 创建一个新的def 文件
(1)从Visual C++ .NET 的菜单,选择[项目] >[添加新项],弹出“添加新项”对话框;
(2)在[添加新项]下拉列表中,选择“def 文件 (.def)”;
(3)键入存放路径“d:\Step01\”和文件名“ArxProject”;
(4)单击[打开],创建了一个def 文件。
1.5.2 添加代码
在ArxProject.def 窗口,已经有了一行代码
LIBRARY Step01
再添加如下代码:
EXPORTS
acrxEntryPoint PRIVATE
acrxGetApiVersion PRIVATE
1.6 编译和运行Step01
编译Step01 项目,应该不会有什么问题,生成Step01.arx。
运行Acad2006,加载Step01.arx。
在命令行键入“hello”。
则在命令行上打印输出:“Hello World!”。
|
|