WINAPI mit Visual Studio 2008



  • Hi ihr,

    Habe soeben den ersten Artikel in diesem Forum gelesen, wos darum ging, dass man mit VS2005 und einem geeignetem PSDK auch mit der WinAPI arbeiten kann.
    Ich habe mir dann gleich mal VS2008, wo das PSDK dafür ja angeblich schon dabei ist installiert und versucht folgenden Quelltext zu compilieren:

    #include "stdafx.h"
    #include <windows.h>
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, char* pcCmdLine, int iShowCmd)
    {
    
    }
    

    Ich bekomme dummerweise ne Menge Fehler:

    c:\programme\microsoft sdks\windows\v6.0a\include\winnt.h(236) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'PVOID64'
    c:\programme\microsoft sdks\windows\v6.0a\include\winnt.h(236) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    c:\programme\microsoft sdks\windows\v6.0a\include\winnt.h(7818) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'Buffer'

    Kann sich jemand vorstellen woran das liegt? Ich habe im Netz gelesen, dass das PSDK für WINAPI eig schon beim VS2008 dabei ist 😞

    cya

    David



  • Du hast vermutlich auch noch das DirectX SDK installiert und hast eine *falsche* Include-Reihenfolge!

    You must ensure that you *firstly* include the windows.h from the PSDK
    directory and then include the directX stuff...



  • Meine Includereihenfolge ist die folgende:

    http://jesusfreak777.je.funpic.de/Unbenannt.JPG

    Eigentlich müsste das so okay sein.

    MSVCRTD.lib(crtexe.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_main" in Funktion "___tmainCRTStartup".

    Echt sonderbar ^^

    *Edit:

    Habe mal alle Einstellungen zurückgesetzt und somit das DX SDK ganz rausgeschmissen. Der Fehler tritt trotzdem auf 😞
    Es ist glücklicherweise jetzt nurnoch EIN Fehler: Verweis auf nicht aufgelöstes externes Symbol "_main" in Funktion "___tmainCRTStartup".*



  • Du erstellst eine Consolen-Anwendung und hast aber "WinMain" anstelle von "_tmain"!
    Entweder in den Linker-Einstellungen auf "Windows" umstellen oder "WinMain" nach "_tmain" ändern!



  • Habe jetzt einfach Win32 Projekt gewählt und da funktioniert der Quelltext.
    Besten Dank!!! 😉

    Ich wunder mich aber irgendwie trotzdem, dass VS da so zimperlich ist. Bei DEV C++ hat der Linker immer alle Dateien gefunden ohne rumzumeckern. Egal obs jetzt ne normale Konsolenanwendung oder nen API Programm war.



  • 777 schrieb:

    Ich wunder mich aber irgendwie trotzdem, dass VS da so zimperlich ist.

    Das hat nichts mit zimperlich zu tun. Entweder Du machst es richtig (DirectX-Verzeichnisse als letztes in der Liste der bekannten Include/Lib Verzeichnisse und in richtiger Reihenfolge inkludieren) oder nicht...

    greetz, Swordfish


Anmelden zum Antworten