[ad_1]
أواجه مشكلة في أحد المشروعات؛ أريد إنشاء صورة ثلاثية الأبعاد باستخدام 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 فقط …
[ad_2]
コメント