lzgvcd 发表于 2007-8-29 19:03:00

为何不能加载arx程序,请指点,在线等,告急啊

#include "stdafx.h"
#include
#include
// 声明初始化函数和卸载函数
void initApp();
void unloadApp();
// 声明命令的执行函数
void HelloWorld();
// 加载应用程序时被调用的函数
void initApp()
{
//使用命令机制注册一个新命令
acedRegCmds->addCommand("HELLOWORLD_COMMANDS",
"Hello",
"Bonjour",
ACRX_CMD_TRANSPARENT,
HelloWorld);
}
// 卸载应用程序时被调用的函数
void unloadApp()
{
//删除命令组
   acedRegCmds->removeGroup("HELLOWORLD_COMMANDS");
}
// 实现Hello命令的函数
void HelloWorld()
{
   ads_alert("\nHello, World!");
}
// 入口点函数
extern "C" AcRx::AppRetCode
acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt)
{
switch (msg)
{
case AcRx::kInitAppMsg:
acrxDynamicLinker->unlockApplication(pkt);
//acrxRegisterAppMDIAware(pkt);
//acrxDynamicLinker->registerAppMDIAware(pkt);
initApp();
break;
case AcRx::kUnloadAppMsg:
unloadApp();
break;
default:
break;
}
return AcRx::kRetOK;
}
以上是个很简单的启蒙例子,大家都很清楚,但是在我这里出现了这样的问题,请高手指点
已经提示说加载成功了,但是运行就会出现以下的情况:未知命令“FIRSTARX
这个是加载的时候出现的提示:-( ARX application : G:\zuoye\firstArx\Debug\firstArx.arx is NOT MDI aware. :-(
已成功加载 firstArx.arx。

zhang007 发表于 2007-8-31 09:23:00

肯定是未知命令FIRSTARX,因为你根本就没注册这个命令。。你注册的是
"Hello",//全球命令名
"Bonjour",//本地命令名

10309598 发表于 2007-9-8 22:14:00

不明白你说的,标题说不能加载,怎么会有加载成功的提示。
我的也和你一样,用这个代码,编译成功,可是加载的时候老是失败!

fpiw 发表于 2007-9-12 08:55:00

你注释掉的那一句就是支持多文档用的:acrxDynamicLinker->registerAppMDIAware(pkt);
AutoCAD 在R14及以前的版本只支持单文档模式,从2000以后支持多文档,如果你的ARX程序没有注册为支持多文档模式,加载时就会有上面的提示警告
页: [1]
查看完整版本: 为何不能加载arx程序,请指点,在线等,告急啊