directx error

i know c++ pretty well and i got started into directx. im using dev-c++ for it and when i compile the following code i get a: invalid conversion from `void*' to `HINSTANCE__*' error. wat does this mean and how do i fix it other people got the code to work so wat did i leave out

Answer this question

directx error

  • surfcaster

    sumguy wrote:
    i know c++ pretty well and i got started into directx. im using dev-c++ for it and when i compile the following code i get a: invalid conversion from `void*' to `HINSTANCE__*' error. wat does this mean and how do i fix it other people got the code to work so wat did i leave out
    It means your code has supplied a void pointer value where an HINSTANCE value was expected. You'll need to look at the line in your code where the error is to find out what the exact problem is.


  • JensN

    thnx ill do that
  • Mercury_Rising

    what code :-) Is dev-C++ a visual C++ version, or a different compiler altogether Do you have the DirectX SDK installed



  • guideX

    That's a lot of code. Which line is your error in And why can't you use VC2003 ( you should be able to )



  • Dedidado

    heres code:

    #include <d3d8.h>

    LPDIRECT3D8 g_pD3D = NULL;
    LPDIRECT3DDEVICE8 g_pD3DDevice = NULL;

    HRESULT InitialiseD3D(HWND hWnd)
    {
    //First of all, create the main D3D object. If it is created successfully we
    //should get a pointer to an IDirect3D8 interface.
    g_pD3D = Direct3DCreate8(D3D_SDK_VERSION);
    if(g_pD3D == NULL)
    {
    return E_FAIL;
    }

    //Get the current display mode
    D3DDISPLAYMODE d3ddm;
    if(FAILED(g_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm)))
    {
    return E_FAIL;
    }

    //Create a structure to hold the settings for our device
    D3DPRESENT_PARAMETERS d3dpp;
    ZeroMemory(&d3dpp, sizeof(d3dpp));

    //Fill the structure.
    //We want our program to be windowed, and set the back buffer to a format
    //that matches our current display mode
    d3dpp.Windowed = TRUE;
    d3dpp.SwapEffect = D3DSWAPEFFECT_COPY_VSYNC;
    d3dpp.BackBufferFormat = d3ddm.Format;

    //Create a Direct3D device.
    if(FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
    D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &g_pD3DDevice)))
    {
    return E_FAIL;
    }

    return S_OK;
    }

    void Render()
    {
    if(g_pD3DDevice == NULL)
    {
    return;
    }

    //Clear the backbuffer to a green color
    g_pD3DDevice->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 255, 0), 1.0f, 0);

    //Begin the scene
    g_pD3DDevice->BeginScene();

    //Rendering of our game objects will go here

    //End the scene
    g_pD3DDevice->EndScene();

    //Filp the back and front buffers so that whatever has been rendered on the back buffer
    //will now be visible on screen (front buffer).
    g_pD3DDevice->Present(NULL, NULL, NULL, NULL);
    }

    void CleanUp()
    {
    if(g_pD3DDevice != NULL)
    {
    g_pD3DDevice->Release();
    g_pD3DDevice = NULL;
    }

    if(g_pD3D != NULL)
    {
    g_pD3D->Release();
    g_pD3D = NULL;
    }
    }

    void GameLoop()
    {
    //Enter the game loop
    MSG msg;
    BOOL fMessage;

    PeekMessage(&msg, NULL, 0U, 0U, PM_NOREMOVE);

    while(msg.message != WM_QUIT)
    {
    fMessage = PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE);

    if(fMessage)
    {
    //Process message
    TranslateMessage(&msg);
    DispatchMessage(&msg);
    }
    else
    {
    //No message to process, so render the current scene
    Render();
    }

    }
    }

    //The windows message handler
    LRESULT WINAPI WinProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
    {
    switch(msg)
    {
    case WM_DESTROY:
    PostQuitMessage(0);
    return 0;
    break;
    case WM_KEYUP:
    switch (wParam)
    {
    case VK_ESCAPE:
    //User has pressed the escape key, so quit
    DestroyWindow(hWnd);
    return 0;
    break;
    }
    break;

    }

    return DefWindowProc(hWnd, msg, wParam, lParam);
    }

    //Application entry point
    INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, INT)
    {
    //Register the window class
    WNDCLASSEX wc = {sizeof(WNDCLASSEX), CS_CLASSDC, WinProc, 0L, 0L,
    GetModuleHandle(NULL), NULL, NULL, NULL, NULL,
    "DX Project 1", NULL};
    RegisterClassEx(&wc);

    //Create the application's window
    HWND hWnd = CreateWindow("DX Project 1", "
    www.andypike.com: Tutorial 1",
    WS_OVERLAPPEDWINDOW, 50, 50, 500, 500,
    GetDesktopWindow(), NULL, wc.hInstance, NULL);

    //Initialize Direct3D
    if(SUCCEEDED(InitialiseD3D(hWnd)))
    {
    //Show our window
    ShowWindow(hWnd, SW_SHOWDEFAULT);
    UpdateWindow(hWnd);

    //Start game running: Enter the game loop
    GameLoop();
    }

    CleanUp();

    UnregisterClass("DX Project 1", wc.hInstance);

    return 0;
    }

    dev-c++ isnt visual. its a different compiler but its made for programming stuff like this. and yea i got da sdk installed. im using dev-c++ because when i try to build on visual it says that my version of visual-c++ doesnt support the optimied compiler or sumtin like that. its visual 2003 though.


  • directx error