zoukankan      html  css  js  c++  java
  • win32下使用相对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] = '';
        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] = '';
        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;
    }
  • 相关阅读:
    Vim
    一文搞定Samba云服务器配置(阿里云)CentOS8.3
    第四课 婴儿是如何思考的 思维的发展历程
    C++/VS基础篇
    Windows下Qt VS 打包程序 到他人电脑安装运行出现的问题
    第三课 斯金纳
    第二课基础 弗洛伊德
    C++中头文件和实现文件的关系
    字符串 数字 转换
    Ucore lab1实验报告
  • 原文地址:https://www.cnblogs.com/meteoric_cry/p/7384380.html
Copyright © 2011-2022 走看看