VC++如何获得文件路径?

我想用MFC编写一个程序,这个程序其中一个功能是打开另一个程序(被打开的程序和打开它的程序在同一个文件夹里面)。刚开始我用WinExec函数实现,但是WinExec函数的... 我想用MFC编写一个程序,这个程序其中一个功能是打开另一个程序(被打开的程序和打开它的程序在同一个文件夹里面)。
刚开始我用WinExec函数实现,但是 WinExec函数的路径是固定的,也就是说,如果文件夹被移动位置的话(例如从D盘移动到E盘),路径就不可用了。
所以我想我问问有没有一种函数可以打开一个指定程序(这个指定的程序与打开它的程序在同一个文件夹里)而不受路径的影响。
展开
 我来答
秋天来了仔陈
推荐于2016-05-13 · TA获得超过2145个赞
知道小有建树答主
回答量:843
采纳率:0%
帮助的人:757万
展开全部
int GetProgramPathDir( char *szPath, const UINT nSize )
{
char szExePath[ MAX_PATH ]; //exe路径
char *pTemp = NULL; //指针
if( NULL == szPath || nSize < 1 )
{
return -2;
}
memset( szExePath, 0, sizeof( szExePath ));
int nRetSize = GetModuleFileNameA( NULL, szExePath, MAX_PATH );
if( 0 == nRetSize )
{
return -1;
}

if( nRetSize == MAX_PATH && GetLastError() == ERROR_INSUFFICIENT_BUFFER )
{
return -3;
}
pTemp = strrchr( szExePath, '\\' );
if( pTemp )
{
*pTemp = '\0';
}
if( strlen( szExePath ) > nSize )
{
return -3;
}
strncpy_s( szPath, nSize, szExePath, nSize );

return 0;
}
使用该函数获取exe文件目录。
追问
关键是获得的路径中间是单斜杠(\)表示的,而打开文件的函数WinExec则需要的是双斜杠(\\),请问这个问题又该如何解决呢?
追答
连C语言下的转义都不明白吗?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式