質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

DirectX

DirectX(ダイレクトエックス)は、 マイクロソフトが開発したゲーム・マルチメディア処理用のAPIの集合です。

Q&A

解決済

1回答

612閲覧

g_pd3DDeviceが定義されていません

MZK_0104

総合スコア23

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

DirectX

DirectX(ダイレクトエックス)は、 マイクロソフトが開発したゲーム・マルチメディア処理用のAPIの集合です。

0グッド

0クリップ

投稿2020/04/19 03:53

少し前と似たような質問なのですが、

C++

1include<windows.h> 2#include<d3dx9.h> 3#include<d3d9.h> 4 5LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) { 6 switch (msg) { 7 case WM_DESTROY: 8 PostQuitMessage(0); 9 return 0; 10 } 11 return DefWindowProc(hwnd, msg, wp, lp); 12} 13 14int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 15 PSTR lpCmdLine, int nCmdShow) { 16 HWND hwnd; 17 MSG msg; 18 WNDCLASS winc; 19 RECT rw, rc; 20 D3DPRESENT_PARAMETERS d3dpp; 21 LPDIRECT3D9 g_pD3D = NULL; 22 winc.style = CS_HREDRAW | CS_VREDRAW; 23 winc.lpfnWndProc = WndProc; 24 winc.cbClsExtra = winc.cbWndExtra = 0; 25 winc.hInstance = hInstance; 26 winc.hIcon = LoadIcon(NULL, IDI_APPLICATION); 27 winc.hCursor = LoadCursor(NULL, IDC_ARROW); 28 winc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); 29 winc.lpszMenuName = NULL; 30 winc.lpszClassName = TEXT("Window"); 31 32 if (!RegisterClass(&winc)) return 0; 33 34 hwnd = CreateWindow( 35 TEXT("Wndows"), TEXT("TestWindow"), 36 WS_OVERLAPPEDWINDOW | WS_VISIBLE, 37 175, 50, 1920, 1080, NULL, NULL, 38 hInstance, NULL 39 ); 40 GetWindowRect(hwnd, &rw); // ウィンドウ全体のサイズ 41 GetClientRect(hwnd, &rc); // クライアント領域のサイズ 42 int new_width = (rw.right - rw.left) - (rc.right - rc.left) + 1280; 43 int new_height = (rw.bottom - rw.top) - (rc.bottom - rc.top) + 720; 44 SetWindowPos(hwnd, NULL, 0, 0, new_width, new_height, SWP_NOMOVE | SWP_NOZORDER); 45 if (hwnd == NULL) return 0; 46 47 if (NULL == (g_pD3D = Direct3DCreate9(D3D_SDK_VERSION))) 48 return E_FAIL; 49 50 ZeroMemory(&d3dpp, sizeof(d3dpp)); 51 d3dpp.Windowed = TRUE; 52 d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; 53 d3dpp.BackBufferFormat = D3DFMT_UNKNOWN; 54 55 if (FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hwnd, 56 D3DCREATE_SOFTWARE_VERTEXPROCESSING, 57 &d3dpp, &g_pd3dDevice))) 58 59 while (GetMessage(&msg, NULL, 0, 0)) DispatchMessage(&msg); 60 return msg.wParam; 61}

一番最後のif文で
if (FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hwnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &g_pd3dDevice)))
とあります。
この、FAILEDの部分に赤波線が出ており
エラー内容は「g_pd3DDeviceが定義されていません」
だそうです。

よくわかりません...

誰か教えてください...

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ドキュメントIDirect3D9::CreateDeviceで型を調べて宣言してください。

IDirect3DDevice9 *g_pd3DDevice = NULL;

もしくは

LPDIRECT3DDEVICE9 g_pd3DDevice = NULL;

投稿2020/04/19 04:14

SHOMI

総合スコア4079

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問