Brauche ich die WinApi ?



  • Das finde ich aber nicht sehr sinnvoll...



  • Das finde ich aber nicht sehr sinnvoll...

    hat er ja auch gesagt...



  • Nein, er hat gesagt, das "verkompliziert die Dinge". DI ist ja nicht so kompliziert. Nur in den Vollbildmodus schalten, was 99% aller DX Anwendungen machen, wird dadurch nicht nur "verkompliziert" sondern unmöglich. Oder gibts eine andere (komplizierte) Möglichkeit um an das Handel zu kommen?
    Es geht ja hier auch nicht darum, ob man ein Fenster erstellen muss, sondern ob man WinApi können muss. Und um ein Fenster zu erstellen, brauch man keine WinApi können, den Code findet man in _jedem_ DX Tutorial. Wenn man das dann erstmal hat, hat man komplette Freiheit.

    Ich finds Schwachsinn, das immer wieder diese Diskussion kommt. Um DX zu Programmieren, muss man noch nie etwas von WinApi gehört haben, so einfach ist das.



  • Hallo

    Es stimmt schon, lpDD->SetCooperativeLevel(NULL,DDSCL_NORMAL) ist nicht
    besonders sinnvoll.
    Ich wollte ja auch nur zeigen, dass man nicht einmal ein Fenster erstellen
    können muss, um ein lauffähiges Spiel zu schreiben...
    Das mit dem Verkomplizieren von Dingen, war allerdings nicht auf das Fenstererstellen
    und DirectInput bezogen.
    Es gibt ne ganze Reihe API Funktionen, die einem das Leben wesentlich vereinfachen:
    z.B.
    -die Zeitfunktionen(GetTickCount,QueryPerformanceCounter...)
    mal zum Vergleich...das Äquivalent ohne WINAPI:

    void ReadTimeStampCounter(unsigned __int64 *i64Time)
    {
    _asm
        {
        _emit 0x0F
        _emit 0x31
        mov ecx,i64Time
        mov dword ptr[ecx],eax
        add ecx,4
        mov dword ptr[ecx],edx
        }
    }
    

    Ist aber um einiges langsamer als die WINAPI Fkt (die darf nämlich auch 0x0F33 benutzen),
    aber selbst wenn es minimal schneller wäre, würde ich dies nicht benutzen.
    *
    -die AVI Funktionen(AVIStreamGetFrame,AVIStreamOpenFromFile...)
    -einige Dateifunktionen(CopyFile,DeleteFile...)
    -DllFunktionen(LoadLibrary,GetProcAddress...)
    -mehr fällt mir im Moment nicht ein.

    Allerdings verstehe ich zwei Sachen nicht:
    1. Dieses Thema hatten wir doch nun schon öfters warum nimmt man es denn nicht
    in die FAQ Sektion auf?
    2. Warum scheut man sich die API zu benutzen...mit einer einigermaßen ordentlichen
    MSDN Version, sollte es eigentlich kein Problem darstellen, sich benötigten Funktionen
    rauszusuchen und anzuwenden.

    Fischi



  • > Dieses Thema hatten wir doch nun schon öfters warum nimmt man es denn nicht in die FAQ Sektion auf?

    Genau - warum eigentlich nicht - hiermit wird der Beitrag ins FAQ Archiv aufgenommen


Anmelden zum Antworten