Debugging 启动时关闭Win32对话框

Debugging 启动时关闭Win32对话框,debugging,winapi,directx,dialog,Debugging,Winapi,Directx,Dialog,我最近在这里问了一个关于我的对话问题的问题,但是我发现问题出在一个不同的领域,我故意认为我会在这里重新表述我的问题 问题是我一直在开发DirectX10游戏引擎。当引擎初始化时,应该会弹出一个对话框,让用户可以选择设置。为了开发它,我创建了一个单独的解决方案(VisualStudio2008),在这里我创建了对话框资源和proc函数。我在那里用一个小的winmain函数测试了它,它工作得非常完美 然后我将资源和所有代码复制到我的主引擎并启动它。唯一发生的事情是,对话框很快弹出,它立即关闭,甚至不

我最近在这里问了一个关于我的对话问题的问题,但是我发现问题出在一个不同的领域,我故意认为我会在这里重新表述我的问题

问题是我一直在开发DirectX10游戏引擎。当引擎初始化时,应该会弹出一个对话框,让用户可以选择设置。为了开发它,我创建了一个单独的解决方案(VisualStudio2008),在这里我创建了对话框资源和proc函数。我在那里用一个小的winmain函数测试了它,它工作得非常完美

然后我将资源和所有代码复制到我的主引擎并启动它。唯一发生的事情是,对话框很快弹出,它立即关闭,甚至不等待用户输入。MessageBox函数也做同样的事情。我走了每一步,但我真的卡住了

请你们中的任何一位帮我看一下代码,看看是否能找到bleep正在发生的事情


zip中有三个不同的文件夹。VKrender是引擎的渲染部分,VKD3D10是VKrender定义的渲染设备中的directX10实现。在Vkrender解决方案中,所有导出的函数也从VKD3D10导出。VKD3D10生成为dll,VKRenderer生成为.lib。然后是StartupTest,它使用构建来尝试启动引擎。SettingsDialogTest是我创建设置对话框和所有资源的地方。在那里,您还可以找到“设置”对话框的工作版本

可以下载ZIP文件。(发动机仍在开发中,因此请友好地接受您的评论:P)非常感谢


通过=帮助

猜测一下,尝试更改:

INT_PTR i = DialogBoxParam(hinst, L"IDD_SETTINGS", hwnd, DlgProcWrapper,(LPARAM) this );


天哪,“地狱”是一个冒犯性的词。前者是正确的。IDD#U设置未定义为数字ID,因此资源编译器将其视为字符串。足够公平。。。我没注意到/
INT_PTR i = DialogBoxParam(hinst, MAKEINTRESOURCE( IDD_SETTINGS ), hwnd, DlgProcWrapper,(LPARAM) this );