Avatar billede haunted Nybegynder
26. januar 2002 - 19:45 Der er 5 kommentarer og
2 løsninger

LPDIRECTDRAWSURFACE4 undecl. identifier

Jeg prøver at lave et program der kan vise en bitmap i DirectDraw. Men når jeg compiler programmet i Visual c++ V5.00. Så siger den følgende:

error C2065: 'LPDIRECTDRAW4' : undeclared identifier

Er der nogen der ved i hvilken fil denne funktion ligger???

Koden ser således ud:

#include <windows.h>

HBITMAP DDLoadBitmap(LPDIRECTDRAWSURFACE4 backBuffer4, LPSTR szImage) {

    LPDIRECTDRAWSURFACE4 BackBuffer4=NULL;

    HBITMAP hbm;
    DDSURFACEDESC2 ddsd;

    ZeroMemory(&ddsd, sizeof(ddsd));
    ddsd.dwSize = sizeof(ddsd));

    if (lpDDS->GetSurfaceDesc(&ddsd) != DD_OK) {
        DDInitFailed(hWnd, hRet, "GetSurfaceDesc() call failed in DDLoadBitmap()");
    }

    // Test for compatible pixel format
    if ((ddsd.ddpfPixelFormat.dwFlags != DDPF_RGB) ||
        (ddsd.ddpfPixelFormat.dwRGBBITCOUNT < 16)) {
        DDInitFailed(hWnd, hRet, "Incompatible surface in DDLoadBitmap()");
    }

    // Load the bitmap image onto memory
    hbm = (HBITMAP) LoadImage(NULL, szImage, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);

    if (hbm == NULL) {
        DDInitFailed(hWnd, hRet, "Bitmap load failed in DDLoadBitmap()");
    }
}
Avatar billede haunted Nybegynder
26. januar 2002 - 19:48 #1
Det er selvfølgelig denne fejl den kommer ud med...

error C2065: 'LPDIRECTDRAWSURFACE4' : undeclared identifier
Avatar billede alvion Nybegynder
26. januar 2002 - 21:15 #2
Skal du ikke include directX header filer?

#include <ddraw.h>
Avatar billede haunted Nybegynder
29. januar 2002 - 16:44 #3
Det har jeg prøvet men lige meget hjalp det.
Avatar billede mortenezentia Nybegynder
30. januar 2002 - 13:54 #4
Ligger ddraw.h i VC's include katalog ? Hvis ikke skal du sætte en additional include directory op (settings - C/C++ - preprocessor) til det katalog hvor du har ddraw.h liggende. Alternativt kan du flytte ddraw.h-filen til VC's include-katalog.

Husk også at linkeren skal linke med ddraw.lib og dxguid.lib (project - settings - link - Object/Library Modules). Husk også at sætte stien op til disse to libraries (under Link - Input - Additional library path) hvis de ikke ligger i standard inkluderede directories.

Hvorfor bruger du ikke en LPDIRECTDRAWSURFACE7 ?
Et sidste råd på vejen - udskriv debug information til en fil for du mister muligheden for at gøre det til skærmen og du vil få brug for det !!!
Avatar billede kamikaze Nybegynder
30. januar 2002 - 18:07 #5
Som mortenezentia siger, skal du huske at linke til de rigtige libraries. Check at ddraw.lib og dxguid.lib ligger i <visual studio>/vc98/lib, og at ddraw.h ligger i <visual studio>/vc98/include.

Gå derefter ind i 'Project > Settings' og tryk på fanebladet 'Link'. Nu skulle du gerne kunne se en masse .lib-filer i et vindue nedenunder. Her skriver du bare 'ddraw.lib' og 'dxguid.lib' - husk mellemrum imellem alle .libs.
Avatar billede haunted Nybegynder
01. februar 2002 - 14:42 #6
Det hjalp at sætte compileren op til at medtage directx lib og include mapperne.

Tak for hjælpen.
Avatar billede kamikaze Nybegynder
01. februar 2002 - 16:50 #7
Velbekommen, og tak for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester