我正在尝试在WPF应用程序中创建Direct3D11窗口。现在我使用来自here的D3DImageEx类(从D3DImage派生)来使其工作。
但是我的D3D11渲染器代码使用DirectXmath.h中的一些数学函数,并且它不能在托管代码中使用。所以我编写了一些包装代码来保持渲染器不受管理。
我现在有三个项目在解决方案中,
D3DCore
的非托管C ++项目,用于执行所有渲染作业。它是一个DLL。 Wrapper
的托管C ++项目,用于包装非托管代码。它是一个DLL。<Image/>
标记来保留D3DImage
,并在Window.Loaded
中初始化Wrapper。 但WPF应用程序将跳过Loaded
函数。如果我把新的Wrapper&#39;进入Window的构造函数,然后它抛出一个异常System.Windows.Markup.XamlParseException
,它包含一个内部异常System.IO.FileLoadException
。它无法加载Wrapper.dll
,为什么?参考是好的(没有黄色三角形)。
PS。class D3DCore
没有析构函数(但实际上需要释放大量资源,例如ID3D11Device*
),这会是问题吗?