Header Problems

Hi,

I was experimenting with DirectX and the PSDK, when suddenly when I attempted to compile the solution I recieved an error about the compiler complaining about the syntax of one of the PSDK files!!

Is this a bug in my code or is there really an error in the PSDK libraries, which i find unlikely. Any ideas

Thanks,

Mike



Answer this question

Header Problems

  • Marianne

    Please re-read my post. With the cursor inside the output window, choose Edit + Quick Find and type "winnt.h", OK. Copy that line. Search again for "basetsd.h".

    The capitalization of the drive and folder names is weird. While you're at it, Tools + Options, Projects and Solutions, VC++ directories. Show directories for = Include files. Copy the contents of the pane.



  • Dika

    Sorry, you lost me...

    Ive only been doing it for a little while. I dont understand where you are coming form sorry. I am using the standard visual express debug compiler though.

    Mike


  • Ansu

    lord_8 wrote:

    Problem Solved!!

    Thanks a lot for the help! I checked the path of the two headers, and they were different. The basetsd.h one was being supplied by the DX SDK, so I checked the VC++ Directories, and placed the DX directories underneath the PSDK ones, and it was fixed!!!

    Thanks again for all the help!

    Mike

    You were lucky and im not. i am facing the header problem about the :

    typedef void * POINTER_64 PVOID64;

    I just did the solution property thing and the precompiler verif. but nothing works i still get the PVOID64 error

    What can i do



  • Jason Lau

    Problem Solved!!

    Thanks a lot for the help! I checked the path of the two headers, and they were different. The basetsd.h one was being supplied by the DX SDK, so I checked the VC++ Directories, and placed the DX directories underneath the PSDK ones, and it was fixed!!!

    Thanks again for all the help!

    Mike


  • sonaht

    What compiler are you using I am assuming that the line in question is:

    typedef void * POINTER_64 PVOID64;

    Which should expand to:

    typedef void * __ptr64 PVOID64;

    POINTER_64 is defined in basetsd.h. I would use a combination of /showIncludes and the preprocess to check that all your header files are coming from the same place and that the correct macro expansion is occuring.



  • twinkieracer

    The problem is (probably) that you are picking up a mixture of header files and POINTER_64 is not being defined properly. There is a compiler option, /showIncludes, that makes the compiler tell you where it is finding each header file that it includes - you can use this output to check if everything is coming from the correct location and if it isn't you can adjust yout INCLUDE path so that everything is consistent.

  • ta5artir

    You probably forgot to include a header file. Shows us the error message and the list of #include statements and we might give you a more accurate answer.



  • JA9999

    Sorry, but how do I do this

    I checked the MSDN docs and I dont understand how to compile a project using the command line. I just refers to compiling single files.

    Thanks for all the help. I really appreciate it.

    Thanks,

    Mike


  • swoozie

    Don't worry about compiling using the command line. Do this: Project + Properties, Configuration properties, C/C++, Command line. In the box marked "Additional options" type "/showIncludes". Careful about case, capitalize the letter "i".

    Recompile your program with Build + Rebuild. Now choose View + Other windows + Output to see the diagnostics generated by the compiler. There'll be a lot but pay attention to "Note: including file ...". Search for the line that shows "winnt.h", then for the line that shows "basetsd.h". Those two files should come from the same folder. If they don't, let us know. If they do, run Windows Explorer, navigate to that folder and tell us the dates and sizes of those two files.



  • Olman Q

    I used the standard PSDK Windows Application WIzard to generate it. I then added a header and it stopped working, I then removed it and all referances to it and still no luck. I then created a new project using the wizard and had the same problem.

    Here is the header in the stdafx.h file:

    #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers

    // Windows Header Files:

    #include <windows.h>

    // C RunTime Header Files

    #include <stdlib.h>

    #include <malloc.h>

    #include <memory.h>

    #include <tchar.h>

    And here is the error message I am getting:

    stdafx.cpp

    d:\program files\microsoft platform sdk\include\winnt.h(222) : error C2146: syntax error : missing ';' before identifier 'PVOID64'

    d:\program files\microsoft platform sdk\include\winnt.h(222) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

    d:\program files\microsoft platform sdk\include\winnt.h(5940) : error C2146: syntax error : missing ';' before identifier 'Buffer'

    d:\program files\microsoft platform sdk\include\winnt.h(5940) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

    d:\program files\microsoft platform sdk\include\winnt.h(5940) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

    Build log was saved at "file://c:\Documents and Settings\Michael\My Documents\Visual Studio 2005\Projects\t\t\Debug\BuildLog.htm"

    t - 5 error(s), 0 warning(s)

    Does this have something to do with the fact the generated file says C Runtime Header Files

    I dont get this. It worked fine, and then just crashed when I added a new header file. The only thing I did before this was modify corewin_express a few days before to add the directx libraries, but no problems turned up straight after this.

    Any ideas

    Mike


  • Jason P

    Note: including file: d:\program files\microsoft platform sdk\include\pshpack4.h

    Note: including file: d:\program files\microsoft platform sdk\include\pshpack2.h

    Note: including file: d:\program files\microsoft platform sdk\include\poppack.h

    Note: including file: d:\program files\microsoft platform sdk\include\pshpack2.h

    Note: including file: D:\Program Files\Microsoft Platform SDK\Include\pshpack2.h

    Note: including file: D:\Program Files\Microsoft Platform SDK\Include\poppack.h

    Note: including file: d:\program files\microsoft platform sdk\include\poppack.h

    Note: including file: d:\program files\microsoft platform sdk\include\pshpack8.h

    Note: including file: d:\program files\microsoft platform sdk\include\poppack.h

    Note: including file: d:\program files\microsoft platform sdk\include\poppack.h

    Here is a sample of the output, after an error message. I noticed it uses

    d:\program files\microsoft platform sdk\include\pshpack2.h

    and

    D:\Program Files\Microsoft Platform SDK\Include\pshpack2.h

    is this what is causing the error

    I can put the entire output up if you want, but its long so decided against it unless asked.

    What do you think,

    Mike


  • Header Problems