DOMANDA Esecuzione programma c++ in ambiente non windows

Michele S.J.

Nuovo Utente
13
0
Buona sera a tutti.
Mi chiamo Michele e, dopo più di 20 anni dal mio diploma in informatica (tempi in cui programmavo in Turbo Pascal), ho deciso di riaffacciarmi al mondo dell'IT, trovandolo completamente mutato.
Ho deciso di imparare il C++, sperando che qualche neurone abbia resistito alle insidie del tempo.
 
Ultima modifica:
U

Utente 125751

Ospite
Buongiorno a tutti;
dopo più di 20 anni dall'aver scritto il mio ultimo programma (in Turbo Pascal 7), mi sto cimentando con il c++ (utilizzando l'IDE di CodeBlocks).
Ho notato che, ogni volta che si lancia un programma (tanto da C.B. quanto da ambiente Windows o dal prompt di sistema), il programma stesso gira in una finestra Windows, con tanto di barra di scorrimento laterale e cursore del mouse.
Qualcuno saprebbe dirmi come eseguire il programma in maniera che l'intera videata di esecuzione sia così come il programma richiede, ovvero senza barra di scorrimento laterale o simili amenità?
Grazie in anticipo.


Giorno anche te.

Questa sezione serve solamente per presentarsi alla community per chi è nuovo.

Presentati e poi apri una discussione nella sezione adatta che nel tuo caso è "programmazione".
 

Fenix27

Utente Attivo
863
220
C++ ? Secondo me è meglio lasciare da parte per ora l'OOP. Ti consiglio di stare sul procedurale partendo con C.
Volendo potresti pure partire con Python ed affacciarti all'OOP dopo che acquisisci un po' di dimestichezza con i concetti come:
- Variabili.
- Costrutti condizionali.
- Cicli (For,While e Do While).
- Array (e metodi di riordinamento) e Stringhe.
- Funzioni.
- File.
- Puntatori .
- Strutture statiche e dinamiche.

Poi ovviamente c'è anche la parte del come strutturare un codice, buone e cattive abitudini, saper leggere una documentazione, cosa fare e non fare...
Potrei parlare di Ingegneria del Software, ma penso sarebbe troppo presto.
 

Michele S.J.

Nuovo Utente
13
0
Ciao Fenix27;
grazie per aver risposto.
Ho buona/discreta familiarità con tutti i topic che hai nominato (20 anni fa già scrivevo qualche programma in Turbo Pascal 7 in ambito OOP).
Ad ogni modo, qualcosa mi dice, che la questione della videata di esecuzione "non fissa" sia un intoppo iniziale riscontrabile un pò in tutti i linguaggi attuali.
Sapresti indicarmi qualche comando o procedura C++ che mi consenta di superare questo scoglio?
 

Michele S.J.

Nuovo Utente
13
0
Buongiorno Marcus,
hai "indovinato"!
:-)
C'è sicuramente un qualche comando o procedura che abilita/disabilita qualche parametro di sistema rendendo la finestra statica ed isolandola da periferiche non previste a programma (es mouse o touchpad), disabilitando la scrollbar laterale e cose simili....insomma facendo in modo che il programma sia "isolato" da qualunque evento/periferica/interfaccia non voluta.
Sapresti indicarmi la soluzione a questo problema?
Grazie in anticipo
 

Marcus Aseth

Utente Attivo
404
138
OS
Windows 10
Bhe se vuoi un output che rimane dove dici tu, lascia perdere applicazioni "console" e crea un'applicazione con finestra.
Puoi farlo tramite l'API windows (#include <Windows.h>) oppure in maniera piu semplice tramite librerie quali SDL2 o SFML.

Ecco un esempio nella sua forma piu semplice e senza error checking, apre una finestra nello schermo: (richiede SDL2)
C++:
#include "SDL2\SDL.h"

int main(int argc, char* argv[])
{
    SDL_Window* Window = nullptr;
    SDL_Renderer* Renderer = nullptr;
    SDL_Init(SDL_INIT_EVERYTHING);

    Window = SDL_CreateWindow("MyWindow", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
                              1280, 960, SDL_WINDOW_SHOWN);

    Renderer = SDL_CreateRenderer(Window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);

    while (true)
    {
        SDL_SetRenderDrawColor(Renderer, 55, 120, 210, 255);
        SDL_RenderClear(Renderer);
    }

    SDL_DestroyWindow(Window);
    SDL_DestroyRenderer(Renderer);
    SDL_Quit();
    return 0;
}
 

Marcus Aseth

Utente Attivo
404
138
OS
Windows 10
Mentre questo è in SFML, anche se non ho mai provato, pare molto piu semplice:

C++:
#include <SFML/Window.hpp>

int main()
{
    sf::Window window(sf::VideoMode(800, 600), "My window");

    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }
    }

    return 0;
}
 

Michele S.J.

Nuovo Utente
13
0
Wow Marcus,
ti ringrazio di vero cuore.
Sperimenterò i metodi che mi hai suggerito, quanto prima, magari in giornata e ovviamente ti farò sapere.
La libreria windows.h l'ho intravista durante la mia carrellata superficiale alle librerie, mentre non mi pare di aver notato le altre sigle (librerie?).
Sto usando il Code Blocks 16.01; ritieni che possa trovare tutto l'occorrente già pronto nell'IDE o devo scaricarlo dalla rete?
Ancora grazie di cuore.
 

Marcus Aseth

Utente Attivo
404
138
OS
Windows 10
Windows.h come hai visto la hai gia di base, SDL2 ed SFML vanno scaricate a parte dai rispettivi siti. Su CodeBlocks non so quale sia la procedura per importate librerie esterne, io uso Visual Studio, ma di sicuro trovi un video su youtube
 

Michele S.J.

Nuovo Utente
13
0
Sì, ho visto che conio.h era già presente nella cartella MinGW\Include ma, pur scrivendo nell'intestazione del programma #include <conio.h> mi dava errore, ragion per cui l'ho poi scaricato, rinominando il vecchio conio.h come conio_old.h ed ora, quantomeno non mi da più errori. Credi che avrò problemi?
Tra l'altro ho anche provato a scaricare conio21 di Borland ma non l'ho incluso (l'ho semplicemente salvato su hd).

Tornando ad SFML....nel sito "https://www.sfml-dev.org/tutorials/2.1/#getting-started" si fa riferimento a due differenti pacchetti per MinGW (windows - 32 bit) (SFML 2.4.2) e sono il TDM (SJLJ) ed il MinGW (DW2); a quanto pare dovrei poterli installare entrambi (il mio C.B. è 16.01) e, per quel pò che riesco ad immaginare, il DW2 dovrebbe essere da preferire, se non altro mi sembra sia più recente ma in un video tutorial, lo youtuber, pur avendo il mio stesso C.B., installa il SJLJ.
Sto seguendo questa linea guida. Che ne pensi?

Grazie ancora, Marcus e scusami se ti sto martoriando con le mie infinite domande ma, davvero, "riaccendendo" il pc dopo oltre un ventennio, fatta eccezione per le conoscenze informatiche, ti dico che mi sento più che perso in questa miriade di software.
 

Marcus Aseth

Utente Attivo
404
138
OS
Windows 10
Nessun problema per le domande, se apro questo forum vuol dire che ho tempo per rispondere a prescindere :D
Cmq non ne ho idea, mai usato e mai sorto il problema (io uso SDL2), però ho trovato questo link se l'inglese non è un problema, elenca le differenze tra SJLJ e DW2, che se ho capito sono due differenti exception handling mechansims, qualsiasi cosa ciò implichi.
Non penso siano differenze importanti in questo contesto, l'importante è che funzioni quindi uno basta che sia direi :P
 

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili