2011-10-01 75 views
0

我是需要在C#中访问DirectX的编码和应用程​​序。具体而言,它需要访问Dinput8.dll的DirectInput8Create函数。直接在C#中使用DirectX Dinput8.dll

我实际上正在做一些勾当..我当前只是试图挂钩的电话,并通过它。我只有找到正确的DLL调用变量类型的问题。

我刚刚有一个脑电波,并认为我将需要使用不安全,使其工作..但我不是100%肯定。

+0

如果您提供了更多的细节并显示了一些代码,那么您的问题将会更好。 Dinput8.dll中需要哪些功能?可能有一种规范的方式来在托管代码中执行您想要的操作。 –

+0

谢谢罗伯特。我确实包含了该功能。我还指定我在做API挂钩。因此,我需要至少能够通过应用程序已经使用DirectInput8Create函数使用的变量。 – ThatGuy

+0

因此,我已尝试了一些不安全代码.. '[的DllImport( “Dinput8.dll”,字符集= CharSet.Unicode,SetLastError =真,CallingConvention = CallingConvention.StdCall)] 静态外部不安全INT DirectInput8Create(IntPtr的HINST,UInt32的dwversion,Guid refid,out void ** lpvoid,int * Fail);' 但它仍然没有快乐。有人有想法吗? – ThatGuy

回答

0

我不确定你为什么直接进入钩子...所以我可能会因为问题的模糊而错过了一些东西。

如果你要挂钩从C#这是一件事...... 但如果你只是想在DX真正进入,直接输入然后我只用SharpDX的DirectX ...

我用它之前,特别是使用Direct Input来直接访问连接到Windows PC的Xbox控制器,并且体验完全没有摩擦。

+0

#DX不支持DX8,不幸的是,在这一点上他们对DX9有实验支持。 –

+0

@JonathanDickinson我不知道你为什么这么想......我现在正在盯着代码:http://code.google.com/p/sharpdx/source/browse/Source/SharpDX.DirectInput/ DirectInput.cs很明显,他正在调用Dinput8.dll ...例如:DInput.DirectInput8Create等 – damageboy

+0

嗯...然后他们的着陆页已过时:)。 –

2

对不起碰撞一个旧帖子,但对于正在寻找此钩子崩溃原因的人来说,它看起来好像钩子函数正在钩子中被调用。这会造成溢出。