Qt设置进程环境变量

作者 : admin 本文共736个字,预计阅读时间需要2分钟 发布时间: 2024-06-10 共1人阅读

目的

最近遇上了设置环境变量的问题,看似是小问题,想解决好,实在是一件不容易的事。
看看当时,我遇到这些问题的无奈:
Qt设置进程环境变量插图

首先说,是在windows进行环境变量的设置,如果在Linux那肯定是简单了。
一般来说,首先是设置系统的环境变量,这条路,是一条复杂的路,首先得写一个程序设置系统的环境变量,这一件事,不好弄,首先主程序不能做这一件事,因为主程序,依赖一些DLL,找不到这些DLL,主程序边启动都无法启动,当然,可以把DLL放到当前路径下,如果DLL少的话,还可以接受,如果多的话,不就好了,都放在当前路径下实在是太乱了,怎么办?
这又有一个新思路,就是把环境变量只设置进程的环境变量,这样,就不用管系统环境变量的事了,开发一个单独的启动进程,其设置进程环境变量,然后,再启动主程序,主程序做为了启动进程的子进程,其就有了进程的环境变量,其就能依据所提供的进程环境变量路径,找到这些依赖的DLL,这样,系统就能正常启动了。

情况

系统环境变量的方法:—复杂且不立即生效

代码:

 std::vector<std::wstring> pathList = {
   L"lib\opencv"};
    wchar_t path[MAX_PATH];
    DWORD size = GetModuleFileNameW(NULL, path, MAX_PATH);
    if (size == 0)
    {
   
        printf("Error getting current executable path
");
        return 1;
    }
    const wchar_t* newName = L"PATH";
    wchar_t currentValue[4096];
    DWORD currentValueSize = sizeof(currentValue) / sizeof(currentValue[0
本站无任何商业行为
个人在线分享 » Qt设置进程环境变量
E-->