سلام
من یه نمونه برنامه دارم که ماله دایرکت ایکسه که بلد نیستم کامپایل کنم کسی راهشو بلده
DirectXSDK هم نصب کردم و با C# بلدم ولی C بلد نیستم هر کی این کارو کرد لطفا گام به گام هم به من یاد بده ...با VC++.net2005
ممنون
سلام
من یه نمونه برنامه دارم که ماله دایرکت ایکسه که بلد نیستم کامپایل کنم کسی راهشو بلده
DirectXSDK هم نصب کردم و با C# بلدم ولی C بلد نیستم هر کی این کارو کرد لطفا گام به گام هم به من یاد بده ...با VC++.net2005
ممنون
یک پروژه win32 project خالی (empty) بسازید و هر سه فایل را به پروژه از طریق add existing item اضافه کنید.
از منوی project و گزینه properties به قسمت linker بروید و در زیر شاخه input در additional dependencies لیست زیر را به همین شکل وارد کنید: (برای debug)
d3d9.lib d3dx9d.lib dxguid.lib DxErr9.lib dinput8.lib
برای release کتابخانه d3dx9.lib را به جای نسخه d3dx9d اضافه کنید و DxErr9 را هم حذف کنید.
این مشکل منو حل نکرد ... فکر نکنم ربطی به کتابخونه دایرکت ایکس داشته باشه چون فقط به این کد ها گیر میده لطفا اگه ممکنه یک بار تست کنید
if(!d3d::InitD3D(hinstance,
Width, Height, true, D3DDEVTYPE_HAL, &Device))
{
::MessageBox(0, "InitD3D() - FAILED", 0, 0);
return 0;
}
خطا
Error 1 error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [19]' to 'LPCWSTR' f:\vstdio.net\directx\bookpart2code\book part ii code\chapter 3\cube\cube.cpp 236
و
wc.lpszClassName = "Direct3D9App";
Error 3 error C2440: '=' : cannot convert from 'const char [13]' to 'LPCWSTR' f:\vstdio.net\directx\bookpart2code\book part ii code\chapter 3\cube\d3dutility.cpp 37
البته این هم هست
Error 3 error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'const char [13]' to 'LPCWSTR' f:\vstdio.net\directx\bookpart2code\book part ii code\chapter 5\lit pyramid\d3dutility.cpp 49
1) در VC++2005 پیش فرض کامپایلر یونیکد هست، پس برای کامپایل آن را به غیر یونیکد (اسکی) تغییر دهید:
از منوی project و گزینه properties به قسمت General رفته و character Set را به use multi-byte character set تغییر دهید.
در غیر این صورت باید تمامی نوشته ها را با L مشخص کنید تا یونیکد شوند و char را نیز تغییر دهید مثلا:
char str = "text";
//to -->
TCHAR str = _T("text");
//or -->
TCHAR str = L"text";
2) در برنامه از timeGetTime استفاده شده، پس باید Winmm.lib را هم به لینکر اضافه کنید.
پروژه zip شده پیوست شد.(آماده در حالت debug)
موفق باشید