如何使用“open with”方法获取程序路径?

时间:2010-02-06 15:58:44

标签: c++ windows command-line

我有问题,我正在使用我的文件的相对路径,所以当我使用“打开方式”方法打开我的程序中的文件时,我的所有路径都被搞砸了(它将在我的文件夹中创建我的文件使用这种“开放式”方法。)

我如何检索我用于使用“open with”方法打开文件的.exe文件的完整路径?

编辑:我的主要功能:

int WINAPI WinMain( HINSTANCE   hInstance,          // Instance
                    HINSTANCE   hPrevInstance,      // Previous Instance
                    LPSTR       lpCmdLine,          // Command Line Parameters
                    int         nCmdShow)           // Window Show State
{

2 个答案:

答案 0 :(得分:5)

GetModuleFileName将为您提供可执行文件的绝对路径:

wchar_t executablePath[MAX_PATH];
if(GetModuleFileNameW(NULL, executablePath, MAX_PATH) == 0) { ... error ... }
else { ... find out executable path and set cwd ... }

答案 1 :(得分:2)

#include <windows.h>
#include <string>
#include <iostream>
using namespace std;;

string ExePath() {
    char buffer[MAX_PATH];
    GetModuleFileName( NULL, buffer, MAX_PATH );
    string::size_type pos = string( buffer ).find_last_of( "\\/" );
    if ( pos == string::npos ) {
        return "";
    else {
        return string( buffer ).substr( 0, pos);
    }
}

int main() {
    cout << "executable path is " << ExePath() << "\n";
}