c# - C+ + - 无法将C# .Net Core 3.0链接到directx 9.0依赖项

我有一个C# WPF Avalon dock应用程序,在.Net内核3.0下工作,我还有一些C 代码,我已经为它们编写了一个C .Net包装器,试图将它集成到里面,但是当它试图加载我的包装器DLL时,它会出现一个"An attempt was made to load a program with an incorrect format."的错误。

这是我的DLL包装代码,头文件:


#pragma once



namespace ADIVSdll {


 public ref class ADIVSInterop


 {


 public:


 void startLive(System::IntPtr handle);


 void startPlayback(System::String^ str);


 private:


 };


}



实现文件:


#include"pch.h"


#define _AMD64_


#include"ADIVSdll.h"


#include <wtypes.h>


#include"CppUtil/Logger.h"


#include <../../Microsoft DirectX SDK (June 2010)/include/d3d9.h>



void ADIVSdll::ADIVSInterop::startLive(System::IntPtr handle)


{


 HWND hWnd = (HWND) (long long)handle;


 //IDirect3D9* md3dObject = Direct3DCreate9(D3D_SDK_VERSION);


 Logger::init("log.log");


}



时间:

我的一些代码调用了D3DXMatrixOrthoLH(),删除调用,错误就消失了,可能是它解析了对x86库的方法调用,使用DirectXMath替代d3dxmath很容易。

...