Winforms mingw g++;Windows子系统WinMain未获取hInstance值 我将VS2015 C++ DirectX/WINFrm应用程序转换为使用明文G++的VS代码(两个都在Windows 10上)。

Winforms mingw g++;Windows子系统WinMain未获取hInstance值 我将VS2015 C++ DirectX/WINFrm应用程序转换为使用明文G++的VS代码(两个都在Windows 10上)。,winforms,mingw,directx,entry-point,hinstance,Winforms,Mingw,Directx,Entry Point,Hinstance,我在添加了-mwindows选项(以及一大堆库)之后,就开始编译和链接它,但是在进入WinMain之后,hInstance没有任何价值 #include <objbase.h> #include <windows.h> int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLin

我在添加了-mwindows选项(以及一大堆库)之后,就开始编译和链接它,但是在进入WinMain之后,hInstance没有任何价值

#include <objbase.h>
#include <windows.h>

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
    LoadString(hInstance, IDS_APP_TITLE,g_szAppName, MAX_LOADSTRING);
...
#包括
#包括
int APIENTRY WinMain(HINSTANCE HINSTANCE,
HINSTANCE HPPrevenstance,
LPSTR lpCmdLine,
国际展览(nCmdShow)
{
LoadString(hInstance、IDS_APP_TITLE、g_szAppName、MAX_LoadString);
...
这会导致任何依赖于它的东西,如LoadString或RegisterClassEx无法工作


我应该寻找什么?

我不确定什么是“没有价值”应该是指,但您始终可以通过调用
GetModuleHandle
NULL
来获取可执行句柄。与vs2015版本相比,g++版本中的hInstance值是一个可疑的整数0x040000 comp。这不是问题。但我的意思是。g++版本中的hInstance值是一个相同的整数0x040000 comp与vs2015版本相比,该版本在每次调用时都是随机的和不同的数字。然而,这就是g++32位和vs 64位之间的差异。我将hInstance值与我下载的另一个工作示例进行了比较,它也得到了相同的hInstance值,并且在创建窗口时没有问题。实际问题将出现在另一个示例中实际的问题是用windres编译rc文件。