首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2013-07-09 
lpCmdLine作为打开文件的路径失灵---windowsAPI在下前几日在用API(没有用MFC)写记事本的时候准备用WinMain

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);
    }    

热点排行