Как получить путь к программе, которую я выполняю методом «открыть с»? - PullRequest
2 голосов
/ 06 февраля 2010

У меня проблема в том, что я использую относительные пути для своих файлов, поэтому, когда я использую метод «открыть с помощью» для открытия файла в моей программе, все мои пути закручиваются (это создаст мои файлы в папке, где я использовал этот метод "открыть с".)

Как я могу получить полный путь к файлу .exe, который я использую, чтобы открыть файл методом «открыть с помощью»?

Редактировать: Моя основная функция:

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

Ответы [ 2 ]

5 голосов
/ 06 февраля 2010

GetModuleFileName даст вам абсолютный путь к вашему исполняемому файлу:

wchar_t executablePath[MAX_PATH];
if(GetModuleFileNameW(NULL, executablePath, MAX_PATH) == 0) { ... error ... }
else { ... find out executable path and set cwd ... }
2 голосов
/ 06 февраля 2010
#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";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...