build error

after downloading VC beta 2 and spending hours trying to get the header files to be recognized and figuring out how to build a hello world file, i decided to move on to chapter 1 of tricks of the windows game programming gurus and run the sample game called freakout, i recieve this error

1>------ Build started: Project: freak1, Configuration: Debug Win32 ------
1>Compiling...
1>blackbox.cpp
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(222) : error C2146: syntax error : missing ';' before identifier 'PVOID64'
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(222) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(5940) : error C2146: syntax error : missing ';' before identifier 'Buffer'
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(5940) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(5940) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\documents and settings\hp_owner\desktop\source codes\t3dchap01\blackbox.cpp(396) : error C2664: 'TextOutW' : cannot convert parameter 4 from 'char *' to 'LPCWSTR'
1>        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>freakout.cpp
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(222) : error C2146: syntax error : missing ';' before identifier 'PVOID64'
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(222) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(5940) : error C2146: syntax error : missing ';' before identifier 'Buffer'
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(5940) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(5940) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\documents and settings\hp_owner\desktop\source codes\t3dchap01\freakout.cpp(162) : error C2440: '=' : cannot convert from 'const char [11]' to 'LPCWSTR'
1>        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>c:\documents and settings\hp_owner\desktop\source codes\t3dchap01\freakout.cpp(178) : error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'const char [11]' to 'LPCWSTR'
1>        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>c:\documents and settings\hp_owner\desktop\source codes\t3dchap01\freakout.cpp(219) : warning C4244: 'return' : conversion from 'WPARAM' to 'int', possible loss of data
1>Generating Code...
1>Build log was saved at "file://c:\Documents and Settings\HP_Owner\My Documents\Visual Studio 2005\Projects\freak1\freak1\Debug\BuildLog.htm"
1>freak1 - 13 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

any help appreciated


Answer this question

build error

  • flyeagle

    no it wasnt, allthough when i even included the header directly i recieved the same error

  • bigdave

    I had this same problem (well, maybe not the exact same one) and fixed it. For me, anyway, when I used /showIncludes I saw that basetsd.h was indeed being included... but I looked farther up and a basetsd.h from the DirectX SDK's include dir was being included as well, before the PSDK's. Thinking this may be the problem, I changed the order of the include directories in my path, making sure that the PSDK's was first. It worked, and now my project compiles fine.

  • chris.kuang

    Hey, can you perhaps tell me how you managed to get the header files recognized

  • NeerajAg

    psdk came from the program files/micrsoft sdk/ directory which was downloaded from the microsoft psdk 2003 win xp server  site

  • DGiudici

    What compiler are you using Could try running cl /Bv - that will show you the exact build number.

  • Bigpoint

    This is not a syntax error: the problem here is that you are compiling your Windows application as a Unicode application (evidenced by the reference to MessageBoxW in the error message): but you are passing a narrow string instead of wide-string.

    There are three solutions to this problem:

    Change your project settings to compile your application as an ANSI application (i.e. get rid of all the Unicode options).

    Change the strings in your program to wide-string: for-example L"MY FIRST WINDOWS PROGRAM"

    Change your code so that it is Unicode/ANSI agnostic: you can acheive this by prefixing the strings with _T macro: for example _T"MY FIRST WINDOWS PROGRAM".

  • Gary J

    sorry, i dont follow. this program should run off the bat without any changes.
    links to the three files are..

    (the book says the ddraw.lib and ddraw.h should be included inside the project and blackbox.cpp and blackbox.h should be linked)


      3 files total

    http://www.bringyou.to/games/freakout.cpp




    // BLACKBOX.H - Header file for demo game engine library

    // watch for multiple inclusions
    #ifndef BLACKBOX
    #define BLACKBOX

    // DEFINES ////////////////////////////////////////////////////

    // default screen size
    #define SCREEN_WIDTH    640  // size of screen
    #define SCREEN_HEIGHT   480
    #define SCREEN_BPP      8    // bits per pixel
    #define MAX_COLORS      256  // maximum colors

    // MACROS /////////////////////////////////////////////////////

    // these read the keyboard asynchronously
    #define KEY_DOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) 1 : 0)
    #define KEY_UP(vk_code)   ((GetAsyncKeyState(vk_code) & 0x8000) 0 : 1)

    // initializes a direct draw struct
    #define DD_INIT_STRUCT(ddstruct) { memset(&ddstruct,0,sizeof(ddstruct)); ddstruct.dwSize=sizeof(ddstruct); }

    // TYPES //////////////////////////////////////////////////////

    // basic unsigned types
    typedef unsigned short USHORT;
    typedef unsigned short WORD;
    typedef unsigned char  UCHAR;
    typedef unsigned char  BYTE;

    // EXTERNALS //////////////////////////////////////////////////

    extern LPDIRECTDRAW7         lpdd;                 // dd object
    extern LPDIRECTDRAWSURFACE7  lpddsprimary;         // dd primary surface
    extern LPDIRECTDRAWSURFACE7  lpddsback;            // dd back surface
    extern LPDIRECTDRAWPALETTE   lpddpal;              // a pointer to the created dd palette
    extern LPDIRECTDRAWCLIPPER   lpddclipper;          // dd clipper
    extern PALETTEENTRY          palette[256];         // color palette
    extern PALETTEENTRY          save_palette[256];    // used to save palettes
    extern DDSURFACEDESC2        ddsd;                 // a direct draw surface description struct
    extern DDBLTFX               ddbltfx;              // used to fill
    extern DDSCAPS2              ddscaps;              // a direct draw surface capabilities struct
    extern HRESULT               ddrval;               // result back from dd calls
    extern DWORD                 start_clock_count;    // used for timing

    // these defined the general clipping rectangle
    extern int min_clip_x,                             // clipping rectangle
               max_clip_x,                 
               min_clip_y,    
               max_clip_y;                 

    // these are overwritten globally by DD_Init()
    extern int screen_width,                            // width of screen
               screen_height,                           // height of screen
               screen_bpp;                              // bits per pixel

    // PROTOTYPES /////////////////////////////////////////////////

    // DirectDraw functions
    int DD_Init(int width, int height, int bpp);
    int DD_Shutdown(void);
    LPDIRECTDRAWCLIPPER DD_Attach_Clipper(LPDIRECTDRAWSURFACE7 lpdds, int num_rects, LPRECT clip_list);
    int DD_Flip(void);
    int DD_Fill_Surface(LPDIRECTDRAWSURFACE7 lpdds,int color);

    // general utility functions
    DWORD Start_Clock(void);
    DWORD Get_Clock(void);
    DWORD Wait_Clock(DWORD count);

    // graphics functions
    int Draw_Rectangle(int x1, int y1, int x2, int y2, int color,LPDIRECTDRAWSURFACE7 lpdds=lpddsback);

    // gdi functions
    int Draw_Text_GDI(char *text, int x,int y,COLORREF color, LPDIRECTDRAWSURFACE7 lpdds=lpddsback);
    int Draw_Text_GDI(char *text, int x,int y,int color, LPDIRECTDRAWSURFACE7 lpdds=lpddsback);

    #endif


    and blackbox.cpp

    // BLACKBOX.CPP - Game Engine
     
    // INCLUDES ///////////////////////////////////////////////////

    #define WIN32_LEAN_AND_MEAN  // make sure all macros are included


    #include <windows.h>         // include important windows stuff
    #include <windowsx.h>
    #include <mmsystem.h>

    #include <iostream>        // include important C/C++ stuff
    #include <conio.h>
    #include <stdlib.h>
    #include <malloc.h>
    #include <memory.h>
    #include <string.h>
    #include <stdarg.h>
    #include <stdio.h>
    #include <math.h>
    #include <io.h>
    #include <fcntl.h>
    #include <basetsd.h>

    #include <ddraw.h>           // directX includes
    #include "blackbox.h"        // game library includes
                                      
    // DEFINES ////////////////////////////////////////////////////

    // TYPES //////////////////////////////////////////////////////

    // PROTOTYPES /////////////////////////////////////////////////

    // EXTERNALS //////////////////////////////////////////////////

    extern HWND main_window_handle; // save the window handle
    extern HINSTANCE main_instance; // save the instance

    // GLOBALS ////////////////////////////////////////////////////

    LPDIRECTDRAW7         lpdd         = NULL;   // dd object
    LPDIRECTDRAWSURFACE7  lpddsprimary = NULL;   // dd primary surface
    LPDIRECTDRAWSURFACE7  lpddsback    = NULL;   // dd back surface
    LPDIRECTDRAWPALETTE   lpddpal      = NULL;   // a pointer to the created dd palette
    LPDIRECTDRAWCLIPPER   lpddclipper  = NULL;   // dd clipper
    PALETTEENTRY          palette[256];          // color palette
    PALETTEENTRY          save_palette[256];     // used to save palettes
    DDSURFACEDESC2        ddsd;                  // a direct draw surface description struct
    DDBLTFX               ddbltfx;               // used to fill
    DDSCAPS2              ddscaps;               // a direct draw surface capabilities struct
    HRESULT               ddrval;                // result back from dd calls
    DWORD                 start_clock_count = 0; // used for timing

    // these defined the general clipping rectangle
    int min_clip_x = 0,                          // clipping rectangle
        max_clip_x = SCREEN_WIDTH-1,
        min_clip_y = 0,
        max_clip_y = SCREEN_HEIGHT-1;

    // these are overwritten globally by DD_Init()
    int screen_width  = SCREEN_WIDTH,            // width of screen
        screen_height = SCREEN_HEIGHT,           // height of screen
        screen_bpp    = SCREEN_BPP;              // bits per pixel

    // FUNCTIONS //////////////////////////////////////////////////

    int DD_Init(int width, int height, int bpp)
    {
    // this function initializes directdraw
    int index; // looping variable

    // create object and test for error
    if (DirectDrawCreateEx(NULL, (void **)&lpdd, IID_IDirectDraw7, NULL)!=DD_OK)
       return(0);

    // set cooperation level to windowed mode normal
    if (lpdd->SetCooperativeLevel(main_window_handle,
               DDSCL_ALLOWMODEX | DDSCL_FULLSCREEN |
               DDSCL_EXCLUSIVE | DDSCL_ALLOWREBOOT)!=DD_OK)
        return(0);

    // set the display mode
    if (lpdd->SetDisplayMode(width,height,bpp,0,0)!=DD_OK)
       return(0);

    // set globals
    screen_height = height;
    screen_width  = width;
    screen_bpp    = bpp;

    // Create the primary surface
    memset(&ddsd,0,sizeof(ddsd));
    ddsd.dwSize = sizeof(ddsd);
    ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;

    // we need to let dd know that we want a complex
    // flippable surface structure, set flags for that
    ddsd.ddsCaps.dwCaps =
      DDSCAPS_PRIMARYSURFACE | DDSCAPS_FLIP | DDSCAPS_COMPLEX;

    // set the backbuffer count to 1
    ddsd.dwBackBufferCount = 1;

    // create the primary surface
    lpdd->CreateSurface(&ddsd,&lpddsprimary,NULL);

    // query for the backbuffer i.e the secondary surface
    ddscaps.dwCaps = DDSCAPS_BACKBUFFER;
    lpddsprimary->GetAttachedSurface(&ddscaps,&lpddsback);

    // create and attach palette

    // create palette data
    // clear all entries defensive programming
    memset(palette,0,256*sizeof(PALETTEENTRY));

    // create a R,G,B,GR gradient palette
    for (index=0; index < 256; index++)
        {
        // set each entry
        if (index < 64)
            palette[index].peRed = index*4;
        else           // shades of green
        if (index >= 64 && index < 128)
            palette[index].peGreen = (index-64)*4;
        else           // shades of blue
        if (index >= 128 && index < 192)
           palette[index].peBlue = (index-128)*4;
        else           // shades of grey
        if (index >= 192 && index < 256)
            palette[index].peRed = palette[index].peGreen =
            palette[index].peBlue = (index-192)*4;
       
        // set flags
        palette[index].peFlags = PC_NOCOLLAPSE;
        } // end for index

    // now create the palette object
    if (lpdd->CreatePalette(DDPCAPS_8BIT | DDPCAPS_INITIALIZE | DDPCAPS_ALLOW256,
                             palette,&lpddpal,NULL)!=DD_OK)
       return(0);

    // attach the palette to the primary
    if (lpddsprimary->SetPalette(lpddpal)!=DD_OK)
       return(0);

    // clear out both primary and secondary surfaces
    DD_Fill_Surface(lpddsprimary,0);
    DD_Fill_Surface(lpddsback,0);

    // attach a clipper to the screen
    RECT screen_rect = {0,0,screen_width,screen_height};
    lpddclipper = DD_Attach_Clipper(lpddsback,1,&screen_rect);

    // return success
    return(1);
    } // end DD_Init

    ///////////////////////////////////////////////////////////////

    int DD_Shutdown(void)
    {
    // this function release all the resources directdraw
    // allocated, mainly to com objects

    // release the clipper first
    if (lpddclipper)
        lpddclipper->Release();

    // release the palette
    if (lpddpal)
       lpddpal->Release();

    // release the secondary surface
    if (lpddsback)
        lpddsback->Release();

    // release the primary surface
    if (lpddsprimary)
       lpddsprimary->Release();

    // finally, the main dd object
    if (lpdd)
        lpdd->Release();

    // return success
    return(1);
    } // end DD_Shutdown

    ///////////////////////////////////////////////////////////////  

    LPDIRECTDRAWCLIPPER DD_Attach_Clipper(LPDIRECTDRAWSURFACE7 lpdds,
                                          int num_rects,
                                          LPRECT clip_list)

    {
    // this function creates a clipper from the sent clip list and attaches
    // it to the sent surface

    int index;                         // looping var
    LPDIRECTDRAWCLIPPER lpddclipper;   // pointer to the newly created dd clipper
    LPRGNDATA region_data;             // pointer to the region data that contains
                                       // the header and clip list

    // first create the direct draw clipper
    if ((lpdd->CreateClipper(0,&lpddclipper,NULL))!=DD_OK)
       return(NULL);

    // now create the clip list from the sent data

    // first allocate memory for region data
    region_data = (LPRGNDATA)malloc(sizeof(RGNDATAHEADER)+num_rects*sizeof(RECT));

    // now copy the rects into region data
    memcpy(region_data->Buffer, clip_list, sizeof(RECT)*num_rects);

    // set up fields of header
    region_data->rdh.dwSize          = sizeof(RGNDATAHEADER);
    region_data->rdh.iType           = RDH_RECTANGLES;
    region_data->rdh.nCount          = num_rects;
    region_data->rdh.nRgnSize        = num_rects*sizeof(RECT);

    region_data->rdh.rcBound.left    =  64000;
    region_data->rdh.rcBound.top     =  64000;
    region_data->rdh.rcBound.right   = -64000;
    region_data->rdh.rcBound.bottom  = -64000;

    // find bounds of all clipping regions
    for (index=0; index<num_rects; index++)
        {
        // test if the next rectangle unioned with the current bound is larger
        if (clip_list[index].left < region_data->rdh.rcBound.left)
           region_data->rdh.rcBound.left = clip_list[index].left;

        if (clip_list[index].right > region_data->rdh.rcBound.right)
           region_data->rdh.rcBound.right = clip_list[index].right;

        if (clip_list[index].top < region_data->rdh.rcBound.top)
           region_data->rdh.rcBound.top = clip_list[index].top;

        if (clip_list[index].bottom > region_data->rdh.rcBound.bottom)
           region_data->rdh.rcBound.bottom = clip_list[index].bottom;

        } // end for index

    // now we have computed the bounding rectangle region and set up the data
    // now let's set the clipping list

    if ((lpddclipper->SetClipList(region_data, 0))!=DD_OK)
       {
       // release memory and return error
       free(region_data);
       return(NULL);
       } // end if

    // now attach the clipper to the surface
    if ((lpdds->SetClipper(lpddclipper))!=DD_OK)
       {
       // release memory and return error
       free(region_data);
       return(NULL);
       } // end if

    // all is well, so release memory and send back the pointer to the new clipper
    free(region_data);
    return(lpddclipper);

    } // end DD_Attach_Clipper

    ///////////////////////////////////////////////////////////////
      
    int DD_Flip(void)
    {
    // this function flip the primary surface with the secondary surface

    // flip pages
    while(lpddsprimary->Flip(NULL, DDFLIP_WAIT)!=DD_OK);

    // flip the surface

    // return success
    return(1);

    } // end DD_Flip

    ///////////////////////////////////////////////////////////////

    DWORD Start_Clock(void)
    {
    // this function starts the clock, that is, saves the current
    // count, use in conjunction with Wait_Clock()

    return(start_clock_count = Get_Clock());

    } // end Start_Clock

    ///////////////////////////////////////////////////////////////

    DWORD Get_Clock(void)
    {
    // this function returns the current tick count

    // return time
    return(GetTickCount());

    } // end Get_Clock

    ///////////////////////////////////////////////////////////////

    DWORD Wait_Clock(DWORD count)
    {
    // this function is used to wait for a specific number of clicks
    // since the call to Start_Clock

    while((Get_Clock() - start_clock_count) < count);
    return(Get_Clock());

    } // end Wait_Clock

    ///////////////////////////////////////////////////////////////

    int DD_Fill_Surface(LPDIRECTDRAWSURFACE7 lpdds,int color)
    {
    DDBLTFX ddbltfx; // this contains the DDBLTFX structure

    // clear out the structure and set the size field
    DD_INIT_STRUCT(ddbltfx);

    // set the dwfillcolor field to the desired color
    ddbltfx.dwFillColor = color;

    // ready to blt to surface
    lpdds->Blt(NULL,       // ptr to dest rectangle
               NULL,       // ptr to source surface, NA           
               NULL,       // ptr to source rectangle, NA
               DDBLT_COLORFILL | DDBLT_WAIT | DDBLT_ASYNC,   // fill and wait                  
               &ddbltfx);  // ptr to DDBLTFX structure

    // return success
    return(1);
    } // end DD_Fill_Surface

    ///////////////////////////////////////////////////////////////  

    int Draw_Rectangle(int x1, int y1, int x2, int y2, int color,
                       LPDIRECTDRAWSURFACE7 lpdds)
    {
    // this function uses directdraw to draw a filled rectangle

    DDBLTFX ddbltfx; // this contains the DDBLTFX structure
    RECT fill_area;  // this contains the destination rectangle

    // clear out the structure and set the size field
    DD_INIT_STRUCT(ddbltfx);

    // set the dwfillcolor field to the desired color
    ddbltfx.dwFillColor = color;

    // fill in the destination rectangle data (your data)
    fill_area.top    = y1;
    fill_area.left   = x1;
    fill_area.bottom = y2+1;
    fill_area.right  = x2+1;

    // ready to blt to surface, in this case blt to primary
    lpdds->Blt(&fill_area, // ptr to dest rectangle
               NULL,       // ptr to source surface, NA           
               NULL,       // ptr to source rectangle, NA
               DDBLT_COLORFILL | DDBLT_WAIT | DDBLT_ASYNC,   // fill and wait                  
               &ddbltfx);  // ptr to DDBLTFX structure

    // return success
    return(1);

    } // end Draw_Rectangle

    ///////////////////////////////////////////////////////////////

    int Draw_Text_GDI(char *text, int x,int y,int color, LPDIRECTDRAWSURFACE7 lpdds)
    {
    // this function draws the sent text on the sent surface
    // using color index as the color in the palette

    HDC xdc; // the working dc

    // get the dc from surface
    if (lpdds->GetDC(&xdc)!=DD_OK)
       return(0);

    // set the colors for the text up
    SetTextColor(xdc,RGB(palette[color].peRed,palette[color].peGreen,palette[color].peBlue) );

    // set background mode to transparent so black isn't copied
    SetBkMode(xdc, TRANSPARENT);

    // draw the text a
    TextOut(xdc,x,y,text,strlen(text));

    // release the dc
    lpdds->ReleaseDC(xdc);

    // return success
    return(1);
    } // end Draw_Text_GDI

    ///////////////////////////////////////////////////////////////




  • toronto_kl

    From looking at the first few errors it looks very much as it you are missing the definition POINTER_64 which under normal circumstances is defined as:

    #define POINTER_64 __ptr64

    This macro is defined in basetsd.h

    Can you check if you are including this header file

    The compiler switch /showIncludes will show you the list of all the header files included by your program (both directly and indirectly).



  • JSR2005

    i ran the command you asked me to and recieved this:
    Setting environment for using Microsoft Visual Studio 2005 x86 tools.

    C:\Program Files\Microsoft Visual Studio 8\VC>cl /Bv
    Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50215.44 for 80x86
    Copyright (C) Microsoft Corporation.  All rights reserved.

    Compiler Passes:
    C:\Program Files\Microsoft Visual Studio 8\VC\BIN\cl.exe:           Version 14.
    00.50215.44
    C:\Program Files\Microsoft Visual Studio 8\VC\BIN\c1.dll:           Version 14.
    00.50215.44
    C:\Program Files\Microsoft Visual Studio 8\VC\BIN\c1xx.dll:         Version 14.
    00.50215.44
    C:\Program Files\Microsoft Visual Studio 8\VC\BIN\c2.dll:           Version 14.
    00.50215.44
    C:\Program Files\Microsoft Visual Studio 8\VC\BIN\link.exe:         Version  8.
    00.50215.44
    C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\mspdb80.dll: Version  8.
    00.50215.44
    C:\Program Files\Microsoft Visual Studio 8\VC\BIN\1033\clui.dll:    Version 14.
    00.50215.44

    cl : Command line error D8003 : missing source filename

    C:\Program Files\Microsoft Visual Studio 8\VC>

    Also noteworthy is while i was trying to compile a simple message box i also recieved a similar error as i was getting on the previous program also:


    *1st error~

    * 1>------ Build started: Project: freak1, Configuration: Debug Win32 ------
    1>Compiling...
    1>blackbox.cpp
    1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(222) : error C2146: syntax error : missing ';' before identifier 'PVOID64'
    1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(222) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(5940) : error C2146: syntax error : missing ';' before identifier 'Buffer'
    1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(5940) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(5940) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>c:\documents and settings\hp_owner\desktop\source codes\t3dchap01\blackbox.cpp(396) : error C2664: 'TextOutW' : cannot convert parameter 4 from 'char *' to 'LPCWSTR'
    1>        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    1>freakout.cpp
    1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(222) : error C2146: syntax error : missing ';' before identifier 'PVOID64'
    1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(222) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(5940) : error C2146: syntax error : missing ';' before identifier 'Buffer'
    1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(5940) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(5940) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>c:\documents and settings\hp_owner\desktop\source codes\t3dchap01\freakout.cpp(162) : error C2440: '=' : cannot convert from 'const char [11]' to 'LPCWSTR'
    1>        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    1>c:\documents and settings\hp_owner\desktop\source codes\t3dchap01\freakout.cpp(178) : error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'const char [11]' to 'LPCWSTR'
    1>        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    1>c:\documents and settings\hp_owner\desktop\source codes\t3dchap01\freakout.cpp(219) : warning C4244: 'return' : conversion from 'WPARAM' to 'int', possible loss of data
    1>Generating Code...
    1>Build log was saved at "file://c:\Documents and Settings\HP_Owner\My Documents\Visual Studio 2005\Projects\freak1\freak1\Debug\BuildLog.htm"
    1>freak1 - 13 error(s), 1 warning(s)
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

    *2nd Error~*

    1>------ Build started: Project: hello, Configuration: Debug Win32 ------
    1>Compiling...
    1>hello.cpp
    1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(222) : error C2146: syntax error : missing ';' before identifier 'PVOID64'
    1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(222) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(5940) : error C2146: syntax error : missing ';' before identifier 'Buffer'
    1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(5940) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>c:\program files\microsoft visual studio 8\vc\platformsdk\include\winnt.h(5940) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
    1>c:\documents and settings\hp_owner\my documents\visual studio 2005\projects\hello\hello\hello.cpp(16) : error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [25]' to 'LPCWSTR'
    1>        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    1>Build log was saved at "file://c:\Documents and Settings\HP_Owner\My Documents\Visual Studio 2005\Projects\hello\hello\Debug\BuildLog.htm"
    1>hello - 6 error(s), 0 warning(s)
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

    *Second program source~

    *// DEMO2_2.CPP - a simple message box
    #define WIN32_LEAN_AND_MEAN

    #include <windows.h>        // the main windows headers
    #include <windowsx.h>       // a lot of cool macros

    // main entry point for all windows programs
    int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline,   int ncmdshow)
    {
    // call message box api with NULL for parent window handle
    MessageBox(NULL, "THERE CAN BE ONLY ONE!!!",  "MY FIRST WINDOWS PROGRAM", MB_OK | MB_ICONEXCLAMATION);

    // exit program
    return(0);

    } // end WinMain

    Thank you for the help,
    Jason

  • Derrick_Jacobs

    I don't need your source code (I am almost certain that the problem does not lie there). I do need to know what compiler you are using.

    Bring up a Visual C++ Command prompt and run cl /Bv - the output of this command will indicate what version of the compiler you are running.

  • jens__

    try removing "#define WIN32_LEAN_AND_MEAN" and then compile it.


  • Rehema

    thanks again but still no go, someone try compiling the messagebox code 2 posts above this please and see if it works. thanks

    EDIT:

    i deleted evetything i copied over including the dx lib/bin/includes and just copied over the psdk to the VC/ directory and now i only get this, must be a syntax problem

    1>------ Build started: Project: hello, Configuration: Debug Win32 ------
    1>Compiling...
    1>WINAPI.cpp
    1>c:\documents and settings\hp_owner\my documents\visual studio 2005\projects\hello\hello\winapi.cpp(14) : error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [25]' to 'LPCWSTR'
    1>        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    1>Build log was saved at "file://c:\Documents and Settings\HP_Owner\My Documents\Visual Studio 2005\Projects\hello\hello\Debug\BuildLog.htm"
    1>hello - 1 error(s), 0 warning(s)
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

  • drole

    no go, thanks though

  • JenDB

    MessageBox(NULL, _T"THERE CAN BE ONLY ONE!!!",_T"MY FIRST WINDOWS PROGRAM", MB_OK | MB_ICONEXCLAMATION);

    gives this:
    1>Compiling...
    1>WINAPI.cpp
    1>c:\documents and settings\hp_owner\my documents\visual studio 2005\projects\hello\hello\winapi.cpp(14) : error C2065: '_T' : undeclared identifier
    1>c:\documents and settings\hp_owner\my documents\visual studio 2005\projects\hello\hello\winapi.cpp(14) : error C2143: syntax error : missing ')' before 'string'
    1>c:\documents and settings\hp_owner\my documents\visual studio 2005\projects\hello\hello\winapi.cpp(14) : error C2059: syntax error : ')'
    1>Build log was saved at "file://c:\Documents and Settings\HP_Owner\My Documents\Visual Studio 2005\Projects\hello\hello\Debug\BuildLog.htm"
    1>hello - 3 error(s), 0 warning(s)
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

    MessageBox(NULL, L"THERE CAN BE ONLY ONE!!!",L"MY FIRST WINDOWS PROGRAM", MB_OK | MB_ICONEXCLAMATION);

    gives this:
    1>WINAPI.cpp
    1>Linking...
    1>WINAPI.obj : error LNK2019: unresolved external symbol __imp__MessageBoxW@16 referenced in function _WinMain@16
    1>MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function _mainCRTStartup
    1>Debug\hello.exe : fatal error LNK1120: 2 unresolved externals
    1>Build log was saved at "file://c:\Documents and Settings\HP_Owner\My Documents\Visual Studio 2005\Projects\hello\hello\Debug\BuildLog.htm"
    1>hello - 3 error(s), 0 warning(s)
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


    and changing the unicode chara set to no set or multibyte char set gives an error also


  • build error