"利用可能なデフォルトコンストラクタがありません"というエラーが表示されていますが、これはおそらく1つしかないものです。私はC++には新しくなっていますが、徐々にそれを手に入れています。C++利用可能なデフォルトのコンストラクタはありませんが、コンストラクタは指定していませんか?
コンストラクタを指定しないと、C++はデフォルトコンストラクタを作成します。しかし、コンストラクタを指定しなくてもエラーが発生します。私はこれに向けてグーグルの解決策を試してみましたが、他の人がクラスを間違って拡張しているか、指定されたコンストラクタを持っているため、このエラーが発生します。私はコンストラクタを指定していませんが、とにかくこのエラーが発生します。 DirectXGameクラスは以下の通りです。
DirectXGame.h
#include "StdAfx.h"
#include "DirectInputHelper.h"
class DirectXGame
{
public:
//DirectXGame();
bool Initialize(HINSTANCE hInstance, HWND windowHandle);
void ShutDown();
bool LoadContent();
void UnloadContent();
void Update(float timeDelta);
void Render();
private:
HINSTANCE progInstance;
HWND winHandle;
D3D_DRIVER_TYPE driverType;
D3D_FEATURE_LEVEL featureLevel;
ID3D11Device* pDev;
ID3D11DeviceContext* pDevContext;
ID3D11RenderTargetView* pBackBufferTarget;
IDXGISwapChain* pSwapChain;
DirectXInput::DirectInputHelper inputHelper;
DirectXInput::KeyboardState* keyboardDevice;
DirectXInput::MouseState* mouseDevice;
bool isShutDown;
};
彼らはコメントアウトされてきたように、私は、任意のコンストラクタを指定していません注意してください。実際のエラーは、クラスの新しいインスタンスを作成するメインメソッドの行にスローされます。
DirectXApp.cpp
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
if(FAILED(InitWindow(hInstance, nCmdShow)))
return 0;
//std::auto_ptr<DirectXGame> DirectXGame(new DirectXGame());
DirectXGame* game = new DirectXGame(); //The compile error is on this line.
bool result = game->Initialize(g_hInst, g_hWnd);
if(!result)
{
game->ShutDown();
return -1;
}
// Main message loop
MSG msg = {0};
while(TRUE)
{
if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
if(msg.message == WM_QUIT)
break;
}
else
{
game->Update(0.0f);
game->Render();
}
}
game->ShutDown();
//Don't forget to delete the game object, as it is a pointer.
delete game;
return static_cast<int>(msg.wParam);
}
私はおそらくちょうどあなたがC++でに注意を払わなければならない多くの細部の一つが欠けています。
あなたはC++を初めて使っていますが、DirectXゲームを作成しようとしていますか?スタックにオブジェクトを使用することに問題はありますか? – chris
DirectXInput :: DirectInputHelper inputHelperをポインタにする必要がありますか? – Darcara
あなたはエラーメッセージ全体を読んでいませんでしたか? –