Grafische Oberfläche. Aber wie?



  • @EinNutzer0 sagte in Grafische Oberfläche. Aber wie?:

    • "Fenster", schließen, minimieren, maximieren, etc.,
    • Textfeld, für die Ausgabe von Plaintext und die manuelle Änderung von Plaintext,
    • Fortschrittsbalken, die Werte 0 bis 100 sollten anzeigt werden können,
    • 5 Buttons, wenn man einen Button anklickt, dann soll das Programm etwas tun,

    Echt jetzt? Wenn das Ding nie portiert werden soll und nicht größer wird WinAPI.

    @EinNutzer0 sagte in Grafische Oberfläche. Aber wie?:

    • ein "Programmdesign", das MVC-Pattern wäre wünschenswert, also die Aufteilung in Daten, Oberfläche, Listenern und Logik...

    Kannst Du ja machen wie Du lustig bist.



  • Also von WinAPI würde ich ja abraten (insbesondere bei C++).

    Aber was spricht jetzt gegen Nana? Das Makro per -DWIN32 zu den Projektoptionen hinzu zufügen dürfte ja jetzt nicht so schwer sein...



  • @EinNutzer0 ja den code darfst du verwenden. es gibt auch ein buch namens windows programmierung von charles petzold, welches dir die wichtigsten teile der windows api erklärt. allerdings müsstest du dann zumindest teilweise auf komfort wie die stl verzichten.



  • @Wade1234 sagte in Grafische Oberfläche. Aber wie?:

    allerdings müsstest du dann zumindest teilweise auf komfort wie die stl verzichten.

    So ein Blödsinn.



  • @Th69 sagte in Grafische Oberfläche. Aber wie?:

    Also von WinAPI würde ich ja abraten (insbesondere bei C++).

    Ich auch. Ich stehe nicht besonders auf Selbstkasteiung. In der heutigen Zeit ist die veraltete Windows API ein Krampf. Es gibt eigentlich genug Frameworks ( z.B. QT ), die das wrappen und es so zumindest etwas erträglicher machen. Das QT-Framework ist allerdings auch nicht gerade der neueste C++-Standard, aber besser als die winapi...



  • @Th69 sagte in Grafische Oberfläche. Aber wie?:

    Also von WinAPI würde ich ja abraten (insbesondere bei C++).

    von ms gibt es eine c++ klassenbibliothek für winapi. die ist bestimmt schon 30 jahre alt, aber bei den neuen versionen von visual c++ immer noch dabei.


  • Gesperrt

    @Th69 sagte in Grafische Oberfläche. Aber wie?:

    Also von WinAPI würde ich ja abraten (insbesondere bei C++).

    Aber was spricht jetzt gegen Nana? Das Makro per -DWIN32 zu den Projektoptionen hinzu zufügen dürfte ja jetzt nicht so schwer sein...

    Geht nicht, ich bekomme Nana mit cygwin64 nicht compiliert.

    c++defines.hpp :

    // Select platform  ......
    #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || 1	//Microsoft Windows
    	#define NANA_WINDOWS
    	typedef unsigned long thread_t;
    
    	// MINGW ...
    	#if defined(__MINGW32__) || defined(__MINGW64__) || defined(MINGW) || 1
    		#define NANA_MINGW
    	#endif // MINGW
    
    #elif defined(APPLE)	//Mac OS X
    

    (zweimal 1 hinzugefügt (s. d. er NANA_WINDOWS und NANA_MINGW setzt)..., dann cmake und make...)

    Fehlermeldung :

    [ 15%] [ 15%] Building CXX object CMakeFiles/nana.dir/source/detail/posix/theme.cpp.o
    [ 16%] [ 16%] Building CXX object CMakeFiles/nana.dir/source/filesystem/filesystem.cpp.o
     /nana/source/filesystem/filesystem.cpp: In Funktion »bool nana::filesystem_ext::modified_file_time(const std::experimental::filesystem::v1::path&, tm&)«:
     /nana/source/filesystem/filesystem.cpp:119:69: Fehler: »const value_type* {aka const char*}« kann nicht nach »LPCWSTR {aka const wchar_t*}« für Argument »1« nach »WINBOOL GetFileAttributesExW(LPCWSTR, GET_FILEEX_INFO_LEVELS, LPVOID)« umgewandelt werden
        if (::GetFileAttributesEx(p.c_str(), GetFileExInfoStandard, &attr))
    


  • Setz die CMake-Variable NANA_CMAKE_NANA_FILESYSTEM_FORCE auf ON, dann könnte es funktionieren.


  • Gesperrt

    @Hubert-Alfonsius , Danke, wieder einen Schritt weiter:

    set(NANA_CMAKE_NANA_FILESYSTEM_FORCE "ON"):

    
    [ 20%] Building CXX object CMakeFiles/nana.dir/source/gui/dragdrop.cpp.o
    In file included from /usr/include/w32api/comdef.h:182:0,
                     from /nana/source/gui/dragdrop.cpp:27:
    /usr/include/w32api/comip.h:21:10: schwerwiegender Fehler: new.h: No such file or directory
     #include <new.h>
              ^~~~~~~
    Kompilierung beendet.
    
    


  • Das hier ist mein workflow wenn ich neues projekt mit nana anfange:
    (mit msys2)

    git clone https://github.com/cnjinhao/nana.git
    cd nana
    git checkout develop
    
    # build ordner leider schon vorhanden
    mkdir release
    cd release
    cmake -DCMAKE_CXX_STANDARD=17 -DNANA_CMAKE_ENABLE_PNG=ON -DNANA_CMAKE_ENABLE_JPEG=ON -G"MSYS Makefiles" -DNANA_CMAKE_ENABLE_AUDIO=ON ..
    make -j24
    

Anmelden zum Antworten