明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1924|回复: 5

如何得到ARX所在的路徑

[复制链接]
发表于 2004-10-16 09:45:00 | 显示全部楼层 |阅读模式
同上
发表于 2004-10-16 10:43:00 | 显示全部楼层
调用API函数
发表于 2004-10-16 11:06:00 | 显示全部楼层

回复

8. 得到当前ARX模块所在路径的方法1, 2:
方法1: --------------------------------------------------------------
CString g_appPath; //全局变量,存储ini文件路径
//取得ARX模块路径
TCHAR appFullPath[MAX_PATH];
int len = GetModuleFileName(_hdllInstance, appFullPath, MAX_PATH); // 可以得到ARX模块的路径, 如果第1个参数设置为NULL, 将返回acad.exe的路径! g_appPath = appFullPath;
g_appPath = g_appPath.Left(g_appPath.ReverseFind('\\')); 方法2: --------------------------------------------------------------
CString appFileName = acedGetAppName(); char dir[_MAX_DIR], drive[_MAX_DRIVE], path[_MAX_PATH];
_splitpath(appFileName, drive, dir, NULL, NULL);
_makepath(path, drive, dir, NULL, NULL);
g_appPath = path;
 楼主| 发表于 2004-10-16 11:08:00 | 显示全部楼层
GetModuleFileName得到的是acad.exe的路径.


acedGetAppName没试,下午试下
发表于 2004-10-16 11:11:00 | 显示全部楼层
不是的,你在ARX模块中用 int len = GetModuleFileName(_hdllInstance, appFullPath, MAX_PATH); 第一个参数是0或NULL,才返回的是acad.exe的路径, 而用_hdllInstance,将返回ARX路径! 如果是用ObjectARX Wizard创建的ARX工程, 第一个参数直接用_hdllInstance就可以了. 或者: char szPath[256] = {0};
GetModuleFileName(0, szPath, 256); // 注意第一个参数
*(strrchr(szPath, '\\') + 1) = 0; AfxMessageBox(szPath);
 楼主| 发表于 2004-10-16 12:29:00 | 显示全部楼层
sorry,没注意......
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-2-23 15:21 , Processed in 0.273617 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表