فشل Directx 8 بسبب الاستثناء


أواجه مشكلة في أحد المشروعات؛ أريد إنشاء صورة ثلاثية الأبعاد باستخدام DirectX 8 لكن لا يمكنني إنشاء الصورة لأنها تؤدي إلى استثناء:

<pre lang="text">argumentnullException the argument of D3D.createDevice 's last parameter was null.

رمز بلدي:

ما حاولت:

<pre lang="VB">
Imports System
imports system.drawing
imports system.data
imports system.collections.generic
imports system.windows.forms
imports Microsoft.direct4XVB.directX8
public class cellular
inherits Forms
Dim Dx8 As DirectX8
Dim D3D As Direct3D8
Dim app As Object = createObject("app")
Dim Device As Direct3Ddevice8
Dim apprunning As Boolean
Public Function init() As boolean
 On Error goto  errHdl:
  Dim Dispmode As D3Ddisplaymode,_
  Dwindow As D3Dpresent_parameters 
  Dx8=new DirectX8()
  D3D = Dx8.Direct3Dcreate()
  'the rest of the code isn't important reply 1209 to view it
  'the code where the problem Revolves 
  D3Ddevice = D3D.createDevice(D3Dadapter_default,D3Dedevtype_hal,D3Dcreate_software_vertexprocessing,D3Dwindow)
  init()=true
  Exit Function
  errhdl:
    init()=false
 End Function
End Class

الحل 1

أولاً، توقف عن الاستخدام On Error – استخدام أكثر حداثة Try ... Catch بدلاً من.

ثم انظر إلى تعريف الدالة:
IDirect3D9::CreateDevice (d3d9.h) – تطبيقات Win32 | مايكروسوفت تعلم[^]

أو البرنامج التعليمي MS:
IDirect3D9::CreateDevice (d3d9.h) – تطبيقات Win32 | مايكروسوفت تعلم[^]

يتطلب 6 معلمات، ويمكنك توفير 4 فقط …

コメント

タイトルとURLをコピーしました