首页 > 解决方案 > 在 AppContainer 中运行 MinGW g++ 编译程序并抛出 ERROR_ILLEGAL_DLL_RELOCATION

问题描述

我正在尝试在 AppContainer 中运行 g++ 编译的程序,但它会引发最后一个错误 623。

MSDN 将此代码解释为ERROR_ILLEGAL_DLL_RELOCATION

{非法系统 DLL 重定位} 系统 DLL %hs 在内存中被重定位。应用程序将无法正常运行。发生重定位是因为 DLL %hs 占用了为 Windows 系统 DLL 保留的地址范围。应联系提供 DLL 的供应商以获取新的 DLL。

我认为在 AppContainer 中运行的程序无权读取内存 DLL,但 MSVC 编译的程序工作正常。

像下面的例子:

#include <iostream>

using namespace std;

int main()
{
    cout << "Hello world!\n";
    return 0;
}

直接使用它可以正常工作CreateProcess(),但在 AppContainer 中返回 623 错误。

g++ 没有添加额外的编译指令,它是 g++ -g {source file} -o {target file}.exe

需求:解决623错误。

参考:AppContainer

g++ 版本:MinGW 8.2.0-4

MSVC 版本:14.22.27905

Windows SDK:10.0.17134.0

标签: c++windowsmingw

解决方案


推荐阅读