今天上午都在弄这个问题,结果是,首先先建个WIN32窗口工程,然后在_tWinMain函数后面添加上
int main(int argc, char* argv[])
{
//HINSTANCE hInstance = GetInstanceModule(NULL);
HINSTANCE hInstance=(HINSTANCE)GetModuleHandle(NULL);
_tWinMain(hInstance , NULL , NULL , 1);
}
就可以更改切换子系统(我只试了控制台和窗口)了。
如果用HINSTANCE hInstance = GetInstanceModule(NULL);将获取不到实例句柄,但是窗口还是会生成。
但是在初始化D3D设备的时候,由于这个实例句柄为空,所有初始化失败。
需使用 HINSTANCE hInstance=(HINSTANCE)GetModuleHandle(NULL); 来获取实例句柄;才能取得到值