win32下使用相对exe文件的绝对路径资源

简介: 在使用VC++进行开发时,如果按F5进行Debug时,当前相对资源是相对工程的vcxproj的文件夹目录,而直接双击运行exe时,资源是相对exe的文件夹目录。为了兼容这二者,最好使用绝对路径,这样无法是Debug还是直接双击运行exe时都不会遇到无法加载资源的问题。

在使用VC++进行开发时,如果按F5进行Debug时,当前相对资源是相对工程的vcxproj的文件夹目录,而直接双击运行exe时,资源是相对exe的文件夹目录。为了兼容这二者,最好使用绝对路径,这样无法是Debug还是直接双击运行exe时都不会遇到无法加载资源的问题。

 

char* WcharToChar(const wchar_t* wp)
{
    char *m_char;
    int len = WideCharToMultiByte(CP_ACP, 0, wp, wcslen(wp), NULL, 0, NULL, NULL);
    m_char = new char[len + 1];
    WideCharToMultiByte(CP_ACP, 0, wp, wcslen(wp), m_char, len, NULL, NULL);
    m_char[len] = '\0';
    return m_char;
}

wchar_t* CharToWchar(const char* c)
{
    wchar_t *m_wchar;
    int len = MultiByteToWideChar(CP_ACP, 0, c, strlen(c), NULL, 0);
    m_wchar = new wchar_t[len + 1];
    MultiByteToWideChar(CP_ACP, 0, c, strlen(c), m_wchar, len);
    m_wchar[len] = '\0';
    return m_wchar;
}

//int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
int _tmain(int argc, _TCHAR* argv[])
{
    // https://stackoverflow.com/questions/1528298/get-path-of-executable
    HMODULE hModule = GetModuleHandleW(NULL);
    WCHAR path[MAX_PATH];
    GetModuleFileNameW(hModule, path, MAX_PATH);

    // setting -> link add Shlwapi.lib   #include <Shlwapi.h>
    PathRemoveFileSpec(path);

    //OutputDebugStringW(path);

    wcscat(path, L"\\main.lua");
    char *pcstr = WcharToChar(path);

    return 0;
}
目录
相关文章
|
5月前
如何在cmd中打开指定文件夹路径
如何在cmd中打开指定文件夹路径
357 0
|
6月前
|
Windows
[笔记]Windows判断文件是可执行文件exe/dll文件/驱动文件sys
[笔记]Windows判断文件是可执行文件exe/dll文件/驱动文件sys
|
8月前
|
Linux
linux终端显示路径/绝对路径/相对路径
linux终端显示路径/绝对路径/相对路径
|
Linux Windows
windows下如何列出目录下所有子目录及文件?
windows下如何列出目录下所有子目录及文件?
1072 0
windows下如何列出目录下所有子目录及文件?
|
Windows
Windows下,BAT文件中使用XCopy复制整个目录
Windows下,BAT文件中使用XCopy复制整个目录
233 0
|
Windows
windows 技术篇 - cmd命令查看当前目录下的所有文件和文件夹以及所有子目录下的文件,dir命令的使用方法
windows 技术篇 - cmd命令查看当前目录下的所有文件和文件夹以及所有子目录下的文件,dir命令的使用方法
2945 0
windows 技术篇 - cmd命令查看当前目录下的所有文件和文件夹以及所有子目录下的文件,dir命令的使用方法
Win10 需要提供管理员权限才能复制到此文件夹的解决方法
Win10 需要提供管理员权限才能复制到此文件夹的解决方法
164 0
Win10 需要提供管理员权限才能复制到此文件夹的解决方法
Win10系统下如何在某个特定的文件夹内输出所有文件路径
Win10系统下如何在某个特定的文件夹内输出所有文件路径
220 0
|
Windows
win7下将dll文件的打开方式改回系统默认
打开注册表,定位到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.dll把除OpenWithProgids外的键全部删除,重启电脑,OK,dll文件又恢复系统默认的技术改变世界! ...
983 0