DirectX でエラーがでます

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
すし太郎

DirectX でエラーがでます

#1

投稿記事 by すし太郎 » 9年前

ゲームを作りたいので DirectX9 Graphics を使いたいのですが、エラーが出てしまいます。
”d3d9.lib d3dx9.lib dxguid.lib winmm.lib” はリンクしてあります。ファイルも存在しています。
LIBリンク場所、INCLUDE場所は設定してあります。
知恵袋などで調べましたが、解決できません。教えてください。
<環境>
コンパイラ: Microsoft Visual C++ 2008 Express Edition
OS: Windows Vista Home Basic SP2
SDK: June 2010

<エラーメッセージ>
リンクしています...
XXX.obj : error LNK2019: 未解決の外部シンボル _Direct3DCreate9@4 が関数_WinMain@16 で参照されました。
C:\Users\XXX\Desktop\Game\Debug\XXX.exe : fatal error LNK1120: 外部参照 1 が未解決です。
エラーログは。。。に保存されました
XXX - エラー 2、警告 0

<ソースコード>

コード:

#include <windows.h>
#include <d3d9.h>
#include <d3dx9.h>

#pragma comment(lib,"d3d9.lib")
#pragma comment(lib,"d3dx9.lib")

HWND hwnd;
MSG msg;
WNDCLASS winc;

LPDIRECT3D9 g_pD3D = NULL;
LPDIRECT3DDEVICE9 g_pd3dDevice = NULL;
D3DPRESENT_PARAMETERS d3dpp;


LRESULT CALLBACK WndProc(HWND hwnd,UINT msg, WPARAM wp , LPARAM lp) {
	switch (msg) {
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return DefWindowProc(hwnd , msg , wp , lp);
}


int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR lpCmdLine,int nCmdShow) {

	winc.style		= CS_HREDRAW | CS_VREDRAW;
	winc.lpfnWndProc	= WndProc;
	winc.cbClsExtra	= winc.cbWndExtra	= 0;
	winc.hInstance		= hInstance;
	winc.hIcon		= LoadIcon(NULL , IDI_APPLICATION);
	winc.hCursor		= LoadCursor(NULL , IDC_ARROW);
	winc.hbrBackground	= (HBRUSH)GetStockObject(WHITE_BRUSH);
	winc.lpszMenuName	= NULL;
	winc.lpszClassName	= TEXT("GAME");

	if (!RegisterClass(&winc)) return -1;

	hwnd = CreateWindow(TEXT("GAME"),TEXT("Game"),WS_MINIMIZEBOX | WS_SYSMENU | WS_VISIBLE,100,100,640,480,NULL,NULL,hInstance,NULL);

	if (hwnd == NULL) return -1;

	// ↓でエラー
	g_pD3D = Direct3DCreate9(D3D_SDK_VERSION);

	ZeroMemory( &d3dpp, sizeof(d3dpp) );
	d3dpp.Windowed = TRUE;
	d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
	d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;
	d3dpp.EnableAutoDepthStencil = TRUE;
	d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
	d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT;

	g_pD3D -> CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hwnd,D3DCREATE_HARDWARE_VERTEXPROCESSING,&d3dpp, &g_pd3dDevice);

	g_pd3dDevice -> SetRenderState(D3DRS_CULLMODE,D3DCULL_NONE);
	// ↑↑↑↑↑DirectX9 Graphics 初期化↑↑↑↑↑

	while (GetMessage(&msg , NULL , 0 , 0)) DispatchMessage(&msg);
	return msg.wParam;
}


“C言語何でも質問掲示板” へ戻る