【问题标题】:Win32 Dialog closing on startupWin32 对话框在启动时关闭
【发布时间】:2009-09-08 21:00:14
【问题描述】:

我最近在这里问了一个关于我遇到的对话问题的问题,但我发现问题出在一个不同的领域,我特意想在这里重新表述我的问题。

问题是我一直在开发 DirectX10 游戏引擎。当引擎启动时,应该会弹出一个对话框,让用户可以选择设置。为了开发这个,我创建了一个单独的解决方案(visual studio 2008),我在其中创建了对话资源和 proc 函数。我在那里用一个小的 winmain 函数对其进行了测试,它运行良好。

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

谁能帮我看看代码,看看你能不能找到*哔声*是怎么回事?


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

ZIP 文件可以在here 下载。 (引擎仍在开发中,请善待您的 cmets :P)提前致谢

通过 = 帮助

【问题讨论】:

  • 天啊,“地狱”这个词太冒犯了。

标签: debugging winapi directx dialog


【解决方案1】:

猜测一下,尝试改变:

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

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

【讨论】:

  • 前者是正确的。 IDD_SETTINGS 不是 #defined 为数字 ID,因此资源编译器将其视为字符串。
  • 还不错……没注意到/
猜你喜欢
  • 1970-01-01
  • 2011-04-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-29
  • 1970-01-01
  • 2011-05-01
  • 2013-07-26
  • 1970-01-01
相关资源
最近更新 更多