所以,我现在已经为此奋斗了 2 天,仍然是同样的错误。我已经用谷歌获得了 300 多个结果,但仍然失败。它一直显示为 HEX,或者根本不起作用。
这没有使用任何外部库,也没有 .net 框架。100% 不依赖。
我已经尝试了 30 多种方法。
TCHAR szExeFileName[MAX_PATH];
GetModuleFileName(NULL, szExeFileName, MAX_PATH);
^ 不起作用;返回十六进制。代码是无效的。
#include "SharedHeader.h"
#include <Psapi.h>
#include "CommandLine_Pres.h"
#include <TlHelp32.h>
using namespace std;
void filePath()
{
// Figure out file path of current file
char cCurrentPath[FILENAME_MAX];
if(!GetCurrentDir(cCurrentPath, sizeof(cCurrentPath)))
{
cout << "error" << endl;
}
cCurrentPath[sizeof(cCurrentPath) -1] = '\0';
cout << cCurrentPath << endl;
// Get process id, filename
//cout << GetCommandLine();
int procId = GetCurrentProcessId();
SYSTEM_INFO si;
GetNativeSystemInfo(&si);
/*
DOES NOT WORK BELOW [debug]
HANDLE Handle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE,GetCurrentProcessId());
if(Handle)
{
TCHAR Buffer[MAX_PATH];
if(GetModuleFileNameEx(Handle, 0, Buffer, MAX_PATH))
{
}
else
{
}
CloseHandle(Handle);
}*/
}