使用DirectX进行编程时,是否使用非UWP实践并使WinMain和WinProc成为可能?我有一本关于DirectX的win32旧书,但它与UWP完全不同。在DirectX与UWP,可以使用win32吗?
回答
通用Windows平台(UWP)支持DirectX 11,核心API与传统Win32桌面应用程序中的相同。在实用程序库中有很大的区别,因为您不能在UWP中使用已弃用的D3DX
库,并且使用CoreWindow
代替Win32消息和WndProc
。
MSDN
Where is the DirectX SDK (2015 Edition)?
Living without D3DX
你应该看看this post在DirectX书的建议,还有DirectX Tool Kit tutorials。
如果你的书够大了,谈论的Direct3D 9或Direct3D 10的,那么它是不是有用UWP。
“主应用程序的入口点和循环使用C++/CX语言扩展,或使用C++/WinRT语言突起时处于不同UWP。也就是说,你可以很容易地将它隔离开来,只关注DirectX交换链和渲染,这些在Win32 classic桌面和UWP应用程序中都是一样的。我在Direct3D VS Game templates这两个平台的结构相同。
对于C++/CX UWP的应用程序,该入口点是:
ref class ViewProvider sealed : public IFrameworkView
{
/* There is no WndProc. This class registers for events instead. */
}
ref class ViewProviderFactory : IFrameworkViewSource
{
public:
virtual IFrameworkView^ CreateView()
{
return ref new ViewProvider();
}
};
[Platform::MTAThread]
int __cdecl main(Platform::Array<Platform::String^>^ argv)
{
auto viewProviderFactory = ref new ViewProviderFactory();
CoreApplication::Run(viewProviderFactory);
return 0;
}
对于C++/WinRT的UWP的应用程序,该入口点是:
class ViewProvider final :
public winrt::implements<ViewProvider, IFrameworkView>
{
/* There is no WndProc. This class registers for events instead. */
}
class ViewProviderFactory final : public
winrt::implements<ViewProviderFactory, IFrameworkViewSource>
{
public:
IFrameworkView CreateView()
{
return winrt::make<ViewProvider>();
}
};
int WINAPI wWinMain(
_In_ HINSTANCE hInstance,
_In_ HINSTANCE hPrevInstance,
_In_ LPWSTR lpCmdLine,
_In_ int nCmdShow
)
{
ViewProviderFactory viewProviderFactory;
CoreApplication::Run(viewProviderFactory);
return 0;
}
这会教我在Goodwill购买2.02美元的书。当我买了它时,我忘记了UWP,但是在旧金山的商店销售总决赛已经太晚了。这是一个很好的原因。 – johnny
- 1. Java上可以使用DirectX吗?
- 2. UWP和DirectX
- 3. DirectX 11.1和Win32 Desktop
- 4. 我可以使用C#开发DirectX应用程序吗?
- 5. UWP可以在.NET中运行吗?
- 6. 我可以在“Delphi 2007 for Win32”中使用.NET DLL吗?
- 7. 我可以在dotNet编译的exe上使用Win32 API ExtractIcon()吗?
- 8. 你可以在UWP中的C#代码中使用C++ DLL吗?
- 9. DirectX可以使WPF应用程序渲染得非常慢吗?
- 10. C#桌面应用程序可以使用UWP组件吗?
- 11. uwp directx和c#开发
- 12. 我可以使用Microsoft Visual Studio Lightswitch 2011编程WIN32 API吗?
- 13. 可以使用Java来编写Win32系统服务吗?
- 14. 使用WinPhone 8的库开发Win10 UWP,我可以吗?
- 15. DirectX诊断模式不适用于Win32(?)
- 16. 在UWP中混合使用DirectX 12和XAML控件
- 17. 在Windows上使用UWP地理位置-API与Win32的应用程序10
- 18. 我可以在Windows 10上刷新JavaScript UWP应用程序吗?
- 19. 您可以在全屏DirectX图层上进行Winform绘图吗?
- 20. Directx9/10程序可以在Directx 11中运行吗?
- 21. NSFormatter可以与NSPopUpButton一起使用吗?
- 22. Django可以与py2exe一起使用吗?
- 23. PowerMock可以与ElasticsearchIntegrationTest一起使用吗?
- 24. HAML可以与Less.js一起使用吗?
- 25. @JsonTypeInfo可以与Collections一起使用吗?
- 26. AsyncFileUpload可以与UpdatePanel一起使用吗?
- 27. Sinatra可以与IronRuby一起使用吗?
- 28. ImageMagickNET可以与c#一起使用吗?
- 29. Lucene.NET可以与MVVM一起使用吗?
- 30. 我可以使用jaxb与hibernate hbm2ddl吗?
UWP使用'WinMain'条目点,就像任何Windows桌面应用程序一样。由于DirectX比UWP早十年,所以您当然可以使用DirectX编写Windows桌面应用程序。你为什么会另有其他假设?无论如何,很难说,在这之后你真的是什么。 – IInspectable
我读了WinMain,并且WinProc在UWP中消失了。编辑:。我试图看看为新项目学习win32是否浪费时间。 – johnny
我不确定你用户提供的入口点属于哪种魔法。这只是一个象征,它可以是任何东西。实际上,UWP的入口点与任何Win32应用程序的入口点仍然相同,但取决于语言预测,您可能不会看到这一点。学习Windows API是浪费吗?我会说:不,从不。 UWP是Win32,只是用很多COM填充。 – IInspectable