编译通过,构件出错,求解~

dpfactory 2004-12-03 10:28:37
#include <d3d8.h>
#define MY_WINCLASS_NAME "Direct3D"

LPDIRECT3D8 g_pMyD3D=NULL;
LPDIRECT3DDEVICE8 g_pMyd3dDevice=NULL;

HRESULT InitMy3d(HWND hWnd)
{
if(NULL==(g_pMyD3D = Direct3DCreate8(D3D_SDK_VERSION)))
return E_FAIL;

D3DDISPLAYMODE d3ddm;
if(FAILED(g_pMyD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT,&d3ddm)))
return E_FAIL;

D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory(&d3dpp,sizeof(d3dpp));
d3dpp.Windowed=true;
d3dpp.SwapEffect=D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat=d3ddm.Format;
if(FAILED(g_pMyD3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING,&d3dpp,&g_pMyd3dDevice)))
{
return E_FAIL;
}
return S_OK;
}
VOID Cleanup()
{
if(g_pMyd3dDevice !=NULL)
g_pMyd3dDevice->Release();

if(g_pMyD3D!=NULL)
g_pMyD3D->Release();
return ;
}
LRESULT WINAPI MsgProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch(msg)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_PAINT:

g_pMyd3dDevice->Clear(0,
NULL,
D3DCLEAR_TARGET,

RGB(255,255,255),
1.0f,0);

g_pMyd3dDevice->Present(NULL,NULL,NULL,NULL);
ValidateRect(hWnd,NULL);
return 0;
}
return DefWindowProc(hWnd,msg,wParam,lParam);
}

int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
WNDCLASSEX wc={sizeof(WNDCLASSEX),
CS_CLASSDC,
MsgProc,
0L,
0L,
GetModuleHandle(NULL),
NULL,
NULL,
NULL,
NULL,
MY_WINCLASS_NAME,
NULL};


RegisterClassEx(&wc);
HWND hWnd=CreateWindow(MY_WINCLASS_NAME,"HELLO!",WS_OVERLAPPEDWINDOW,100,100,400,300,GetDesktopWindow(),NULL,wc.hInstance,NULL);
if(SUCCEEDED(InitMy3d(hWnd)))
{
ShowWindow(hWnd,SW_SHOWDEFAULT);
UpdateWindow(hWnd);
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
Cleanup();
UnregisterClass(MY_WINCLASS_NAME,wc.hInstance);
return 0;
}




--------------------Configuration: test1 - Win32 Debug--------------------
Linking...
test1-1.obj : error LNK2001: unresolved external symbol _Direct3DCreate8@4
Debug/test1.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

test1.exe - 2 error(s), 0 warning(s)




因为看不懂英文了,请教~
...全文
80 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
syy64 2004-12-03
  • 打赏
  • 举报
回复
应该跟库有关。
mixtrue 2004-12-03
  • 打赏
  • 举报
回复
没有解析Direct3DCreate8 ,有了函数的声明,没有找到相应的函数体 ,的包含Direct3D(d3d8.h这个对应的lib 文件) 的库。
例如: #pragam comment (lib,"Your3D.lib") ;
mixtrue 2004-12-03
  • 打赏
  • 举报
回复
找到相应的lib 文件然后入我在上面说得引入库即可。原因如我上面所说的。有了函数的声明,没有找到相应的函数体
dpfactory 2004-12-03
  • 打赏
  • 举报
回复
那有什么办法解决么????
还有为什么会这样么?

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧