ورود

View Full Version : مبتدی: مشکل با تابع D3D10CreateDeviceAndSwapChain



Farzandekurosh
یک شنبه 06 شهریور 1390, 13:40 عصر
سلام


void d3dApp::initD3D(void)
{
DXGI_SWAP_CHAIN_DESC sd;
//initialize sd...
sd = FillSwapChainParams();
//create the device and Swap Chain
D3D10CreateDeviceAndSwapChain(0, D3D10_DRIVER_TYPE_HARDWARE,
0, 1, D3D10_SDK_VERSION,
&sd, &mSwapChain, &md3dDevice); //debug mode
}


در ضمن تابع FillSwapChainParams به صورت زیر تعریف شده :


DXGI_SWAP_CHAIN_DESC d3dApp::FillSwapChainParams(void)
{
DXGI_SWAP_CHAIN_DESC sd;
sd.BufferDesc.Width = 400;
sd.BufferDesc.Height = 400;
sd.BufferDesc.RefreshRate.Numerator = 60;
sd.BufferDesc.RefreshRate.Denominator = 1;
sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
sd.BufferDesc.ScanlineOrdering = DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED;
sd.BufferDesc.Scaling = DXGI_MODE_SCALING_UNSPECIFIED;

// No multisampling.
sd.SampleDesc.Count = 1;
sd.SampleDesc.Quality = 0;

sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
sd.BufferCount = 1;
sd.OutputWindow = mHwnd;
sd.Windowed = true;
sd.SwapEffect = DXGI_SWAP_EFFECT_DISCARD;
sd.Flags = 0;
return sd;
}


اگه تابع initd3d اجرا بشه یه نشه runtime زیر تولید میشه :



1>app.obj : error LNK2019: unresolved external symbol _D3D10CreateDeviceAndSwapChain@32 referenced in function "public: void __thiscall d3dApp::initD3D(void)" (?initD3D@d3dApp@@QAEXXZ)
1> fatal error LNK1120: 1 unresolved externals



همین مشکل رو با تابع CreateDevice در d3d9 دارم مشکل از کجاست ؟ :متفکر: با تشکر

Farzandekurosh
یک شنبه 06 شهریور 1390, 18:34 عصر
حل شد :
اسم فایل های d3d10.lib و d3dx10.lib باید به مسیر زیر اضافه بشن :

project->properties->configuration properties->linker->input

چون اول برنامه فایل سرآیند direct3d رو گذاشتم پس خطای compile نمیده و اسم تابع در فایل سرآیند موجوده ولی موقع اجرا چون اصل تابع مورد نظر در فایل d3dx10.lib است و اگه اسمش رو تو مسیر گفته شده وارد نکنیم این خطا تولید میشه در ضمن این نکته برای همه توابع صدق میکنه و باید دقت داشت که تابع مورد نظر رو از کدوم فایل اجرا می کنیم و قبل از اجرا اسمش رو به لیست کتاب خونه های پیوندی اضافه کنیم.
با تشکر از دوستان و خودم:قهقهه: