判断ARX程序是否加载及加载卸载操作
来源:互联网 发布:小明看看发布永久域名 编辑:程序博客网 时间:2023/03/30 15:58
在Arx操作中,经常碰到要判断一个ARX是否被加载了,以及需要在程序中动态加载或者卸载一个ARX程序,于是封装了这几个函数
// 检查arx程序是否加载,格式“arxname.arx”,不要路径名
// 返回:RTNORM-已加载 RTERROR-没加载
int YgxAcadUtil::IsArxLoaded(const char* appName)
{
char tBuf[80];
size_t appL, tBufL, i;
int retCode;
struct resbuf* rb1, * rb2;
appL = strlen(appName);
for (rb2 = rb1 = acedArxLoaded(); rb2 != NULL; rb2 = rb2->rbnext) {
if (rb2->restype = RTSTR) {
retCode = RTNORM;
strcpy(tBuf, rb2->resval.rstring);
tBufL = strlen(tBuf);
if (appL != tBufL) retCode = RTERROR;
else {
for (i=0; i<appL; i++) {
if (toupper(appName[i]) != toupper(tBuf[i])) {
retCode = RTERROR;
break;
}
}
if (retCode == RTNORM) break;
else retCode = RTERROR;
}
}
}
acutRelRb(rb1);
return retCode;
}
// 不管arx有没有加载,都可以调用,appName为全路径或在CAD搜索路径范围内
// 正常-RTNORM
int YgxAcadUtil::ArxLoad(const char* appName)
{
char DriveName[_MAX_DRIVE],PathName[_MAX_PATH],FileName[_MAX_FNAME],Ext[_MAX_EXT];
_splitpath(appName, DriveName, PathName, FileName, Ext);
char szAppname[80];
sprintf(szAppname, "%s.%s", FileName, Ext);
if (RTNORM == YgxAcadUtil::IsArxLoaded(szAppname))
return RTNORM;
else
return acedArxLoad(appName);
}
// 不管arx有没有加载,都可以调用,格式“arxname.arx”,不要路径
// 正常-RTNORM
int YgxAcadUtil::ArxUnload(const char* appname)
{
if (RTNORM == YgxAcadUtil::IsArxLoaded(appname))
return acedArxUnload(appname);
else return RTNORM;
}
- 判断ARX程序是否加载及加载卸载操作
- AutoCAD启动是自动加载ARX程序
- 判断程序是否首次加载(粗略代码)
- 判断是否加载jquery
- 如何从程序集中加载及卸载插件
- 如何从程序集中加载及卸载插件
- 判断Flash是否全部加载完毕的程序
- Delphi中WebBrowser判断页面及JS是否加载完成
- Delphi中WebBrowser判断页面及JS是否加载完成
- 判断网页是否加载完成
- 判断页面是否加载完成
- 判断页面是否加载完毕
- 判断Webbrowser是否加载完成
- 判断iframe是否加载完成
- iframe是否加载完判断
- 判断flash是否加载完成
- 判断 iframe 是否加载完成
- android判断activity是否加载
- mysql基本命令
- 如何打包发布基于Qt4 Windows的软件
- SAX解析XML file
- C#代码生成控件动态效果-XAML篇
- CSS也可以修饰Java桌面
- 判断ARX程序是否加载及加载卸载操作
- 论创新工场、职业发展、offer如何比较选择、移动互联网
- sqlserver 分离字符串问题
- c# 后台服务
- Javascript网页打印大全
- 在IIS中设置Session”永不过期”的问题
- 第一篇
- 软件开发方法
- 软件开发模型