easypower 发表于 2004-10-16 09:45:00

如何得到ARX所在的路徑

同上

dipenghao 发表于 2004-10-16 10:43:00

调用API函数

王咣生 发表于 2004-10-16 11:06:00

回复

8. 得到当前ARX模块所在路径的方法1, 2:<BR>                               方法1: --------------------------------------------------------------<BR>                               CString g_appPath;                                //全局变量,存储ini文件路径<BR>                               //取得ARX模块路径<BR>                               TCHAR appFullPath;<BR>                               int len = GetModuleFileName(_hdllInstance, appFullPath, MAX_PATH);        // 可以得到ARX模块的路径, 如果第1个参数设置为NULL, 将返回acad.exe的路径!


                               g_appPath = appFullPath;<BR>                               g_appPath = g_appPath.Left(g_appPath.ReverseFind('\\'));


                               方法2: --------------------------------------------------------------<BR>                               CString appFileName = acedGetAppName();


                               char dir, drive, path;<BR>                               _splitpath(appFileName, drive, dir, NULL, NULL);<BR>                               _makepath(path, drive, dir, NULL, NULL);<BR>                               g_appPath = path;

easypower 发表于 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 = {0};<BR>GetModuleFileName(0, szPath, 256);                                                       // 注意第一个参数<BR>*(strrchr(szPath, '\\') + 1) = 0; AfxMessageBox(szPath);

easypower 发表于 2004-10-16 12:29:00

sorry,没注意......
页: [1]
查看完整版本: 如何得到ARX所在的路徑