在vb中可以用app.path取得应用程序的路径,请问在vc中用什么方法可以和此方法等效。我在dll中用取当前路径的方法getcurrentdirectory,但我用installshield做了个安装程序,在桌面和开始菜单里加入了快捷方式,但就是这个快捷方式有问题,两个快捷方式取得路径都不一样,取的都是快捷方式所在的路径,而不是我要的应用程序的运行路径;而vb程序却能够找到程序的运行路径。是不是getcurrentdirectory方法只能取得文件所在的位置。请教那位高手能够帮我解决这个问题。多谢!

解决方案 »

  1.   

    DWORD GetModuleFileName(
      HMODULE hInstModule,
      PTSTR pszPath,
      DWORD cchPath
    );
      

  2.   

    CString appPath;
        ::GetModuleFileName(NULL, appPath.GetBuffer(MAX_PATH), MAX_PATH);
        //×¢£ºÊ¹ÓøÃAPIº¯ÊýµÃµ½µÄÊdzÌÐòÎļþÍêÕû·¾¶ÎļþÃû£¬È¥µôÎļþÃûºó²ÅÊÇ·¾¶¡£
        appPath.ReleaseBuffer();
        int n = appPath.ReverseFind('\\');
        CString helpFile;
        helpFile = appPath.Left(n);
        TCHAR c = helpFile.GetAt(n - 1);
      

  3.   

    下面代码 to try  :)
    char szFilePath[256];
    LPSTR lpTemp;
    GetModuleFileName(m_hInstance, szFilePath, sizeof(szFilePath));
    for(lpTemp = szFilePath + lstrlen(szFilePath); 
    *(lpTemp - 1) != '\\'; lpTemp--);
    lstrcpy(lpTemp, "");
    CString strAppPath = szFilePath;
      

  4.   

    CString appPath;
    ::GetModuleFileName(NULL, appPath.GetBuffer(MAX_PATH), MAX_PATH);
    appPath.ReleaseBuffer();//注:使用该API函数得到的是程序文件完整路径文件名,去掉文件名后才是路径