读书人

lpCmdLine作为打开资料的路径失灵-win

发布时间: 2013-07-09 09:50:48 作者: rapoo

lpCmdLine作为打开文件的路径失灵---windowsAPI
在下前几日在用API(没有用MFC)写记事本的时候准备用WinMain的lpCmdLine作为程序打开文件的路径时发现当要打开的文件在c盘下的时候使用将文件拖拽到程序的这种方法能够将这个文件打开,但是采取双击调用程序来打开它的方法却打不开它,但是我用消息框来显示lpCmdLine的时候发现两种方法都得到相同的路径,可是用双击法就是打不开(很是奇怪啊),而且当要打开的文件位于C:\Documents and Settings下的时候两种方法都打不开文件了,用消息框一看又却是得到了正确的路径的,请问各位前辈这个问题怎么解决啊。 API lpcmdline作为打开文件的路径
[解决办法]
自己动手把字符串中路径两头的双引号去掉..
[解决办法]
二楼正解。

GetModuleFileName比lpCmdLine可靠。
[解决办法]
要加判断。有引号就去引号,没有就不要多事。


if(lpCmdLine[0])
{
MessageBox(NULL,lpCmdLine, _T("path"), MB_OK
[解决办法]
MB_ICONINFORMATION);
TCHAR fpath[MAX_PATH]={NULL};
unsigned int start = 0;
unsigned int len = strlen( lpCmdLine );
if( (len > 1) && (lpCmdLine[0] == _T('"')) && (lpCmdLine[len-1] == _T('"')) )
{
start = 1;
len -= 2;
}
memcpy( fpath, lpCmdLine + start, len * sizeof(lpCmdLine[0]) );
fpath[len] = 0;
MessageBox(NULL,fpath, _T("path"), MB_OK
[解决办法]
MB_ICONINFORMATION);
}

读书人网 >C++

热点推荐