ShellExecute的用法请问:能否使用相对路径
ShellExecute的用法请教:能否使用相对路径?
问题是这样的:
在一个工程目录下CStranslation下,我和别人分别做了Client端和Server端,因为sever端有MFC界面所以想在给老师做演示的时候,显得好看一点,在server端点击按钮就能打开client.exe。
ShellExecute(this->m_hWnd,"open","d:\\project\\CStranslation\\Client\\debug\\myclient.exe","","", SW_SHOW );
但是老师要求统一在她的机器上做演示,绝对路径报销了,怎么使用相对路径呢,似乎很多人都在争论啊。
------解决方案--------------------
1.获取当前执行文件的路径
2.然后将myclient.exe放在相对应用程序的某个目录(比如在MyEXE目录下)
问题是这样的:
在一个工程目录下CStranslation下,我和别人分别做了Client端和Server端,因为sever端有MFC界面所以想在给老师做演示的时候,显得好看一点,在server端点击按钮就能打开client.exe。
ShellExecute(this->m_hWnd,"open","d:\\project\\CStranslation\\Client\\debug\\myclient.exe","","", SW_SHOW );
但是老师要求统一在她的机器上做演示,绝对路径报销了,怎么使用相对路径呢,似乎很多人都在争论啊。
------解决方案--------------------
1.获取当前执行文件的路径
2.然后将myclient.exe放在相对应用程序的某个目录(比如在MyEXE目录下)
- C/C++ code
//获取配置文件文件路径 char fName[FILENAME_MAX]; GetModuleFileName(NULL, fName, FILENAME_MAX); *strrchr(fName, '\\') = '\0'; strcat_s(fName, FILENAME_MAX, "\\Config\\Communicate.ini");
------解决方案--------------------
争论... 程序执行的目录叫做当前工作目录.
将程序和数据放在同一目录下, 切到程序所在目录, 执行程序, 那么程序的工作目录就是和数据在同一个目录, 程序中的代码使用相对路径即可操作到数据.
------解决方案--------------------