我有问题,我正在使用我的文件的相对路径,所以当我使用“打开方式”方法打开我的程序中的文件时,我的所有路径都被搞砸了(它将在我的文件夹中创建我的文件使用这种“开放式”方法。)
我如何检索我用于使用“open with”方法打开文件的.exe文件的完整路径?
编辑:我的主要功能:
int WINAPI WinMain( HINSTANCE hInstance, // Instance
HINSTANCE hPrevInstance, // Previous Instance
LPSTR lpCmdLine, // Command Line Parameters
int nCmdShow) // Window Show State
{
答案 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";
}