参考的这个路径,
https://stackoverflow.com/questions/41413534/get-app-path-for-fopen-in-uwp?tdsourcetag=s_pcqq_aiomsg
#include "pch.h"
#include <windows.h>
#include <string>
extern "C" IMAGE_DOS_HEADER __ImageBase;
std::wstring GetExecutablePath()
{
std::wstring buffer;
size_t nextBufferLength = MAX_PATH;
for (;;)
{
buffer.resize(nextBufferLength);
nextBufferLength *= 2;
SetLastError(ERROR_SUCCESS);
auto pathLength = GetModuleFileName(reinterpret_cast<HMODULE>(&__ImageBase), &buffer[0], static_cast<DWORD>(buffer.length()));
if (pathLength == 0)
throw std::exception("GetModuleFileName failed"); // You can call GetLastError() to get more info here
if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)
{
buffer.resize(pathLength);
return buffer;
}
}
}
void RemoveLastPathComponent(std::wstring& path)
{
auto directoryLength = path.length() - 1;
while (directoryLength > 0 && path[directoryLength] != '\\' && path[directoryLength] != '/')
directoryLength--;
if (directoryLength > 0)
path.resize(directoryLength);
}
std::wstring GetExecutableDirectory()
{
auto executablePath = GetExecutablePath();
RemoveLastPathComponent(executablePath);
return executablePath;
}