Visualizzazione risultati 1 fino 27 di 27

Discussione: Iniziando con C++ partendo da php

  1. #1
    L'avatar di foreach
    foreach non è connesso Altervistiano Junior
    Data registrazione
    11-06-2008
    Residenza
    3 metri sotto terra
    Messaggi
    501

    Predefinito Iniziando con C++ partendo da php

    Salve,

    sono super bravo (almeno credo) con php, ma vorrei anche esserlo con C++ :)

    Ho installato Dev-C++ 4.9.9.2 e ho aperto i file esempio che già stavano. Le differenze con php sono poche, veramente...

    Mettete che voglio trasformare codice php in C++ e creare una vera e propria applicazione, come faccio?

    C'è una documentazione ufficiale di questo linguaggio?





    Grazie,
    foreach
    Codice PHP:
    foreach($vettore as $chiave => $valore) {
    echo 
    "Ciao";


  2. #2
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    Te lo studi e tenti di replicare gli stessi algoritmi.

    http://www.cplusplus.com/


    -- Aut Roma Aut Nihil!

  3. #3
    L'avatar di foreach
    foreach non è connesso Altervistiano Junior
    Data registrazione
    11-06-2008
    Residenza
    3 metri sotto terra
    Messaggi
    501

    Predefinito

    Bene, ho letto sul sito che mi hai indicato un esempio di un programma in C++, ecco il codice:

    Codice PHP:
    // my second program in C++

    #include <iostream>

    using namespace std;

    int main ()
    {
    cout << "Hello World! ";
    cout << "I'm a C++ program";
    return
    0;
    }

    Ora come lo rendo un file eseguibile *.exe da Dev-C++?




    Grazie,
    foreach
    Codice PHP:
    foreach($vettore as $chiave => $valore) {
    echo 
    "Ciao";


  4. #4
    Guest

    Predefinito

    basta che fai Build, e il programma compilera il tuo codicde nella cartella dove lo hai salvato...

  5. #5
    Guest

    Predefinito

    Foreach non riuscirai mai a vedere l'esecuzione di quel programma perché stampa quelle stringhe a video e si chiude subito dopo, devi mettere qualcosa che fermi l'esecuzione in modo da permetterti di leggerle.
    So che non è il massimo, ma io quando iniziavo come te le prime nozioni di C++ (ora sono mesi che non ci metto mano) usavo:
    Codice:
    system("PAUSE");

  6. #6
    L'avatar di foreach
    foreach non è connesso Altervistiano Junior
    Data registrazione
    11-06-2008
    Residenza
    3 metri sotto terra
    Messaggi
    501

    Predefinito

    Dove lo metto il codice che mi hai dato tu?

    All'inizio o alla fine?



    Grazie,
    foreach
    Codice PHP:
    foreach($vettore as $chiave => $valore) {
    echo 
    "Ciao";


  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da foreach Visualizza messaggio
    Dove lo metto il codice che mi hai dato tu?

    All'inizio o alla fine?



    Grazie,
    foreach
    Lo devi mettere prima di return 0;
    cmq io opterei per il getch(); ma fai tu...

  8. #8
    L'avatar di foreach
    foreach non è connesso Altervistiano Junior
    Data registrazione
    11-06-2008
    Residenza
    3 metri sotto terra
    Messaggi
    501

    Predefinito

    Allora amici,

    con Dev-C++ ho creato un nuovo progetto e mi ha dato un po' di codice iniziale, poi ci ho aggiunto io un po' di codice mio in base ai tutorial sul sito che seneca mi ha linkato, e sono arrivato a questo:

    Codice PHP:
    #include <windows.h>

    /* Declare Windows procedure */
    LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

    /* Make the class name into a global variable */
    char szClassName[ ] = "WindowsApp";

    int WINAPI WinMain (HINSTANCE hThisInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpszArgument,
    int nFunsterStil)

    {
    HWND hwnd; /* This is the handle for our window */
    MSG messages; /* Here messages to the application are saved */
    WNDCLASSEX wincl; /* Data structure for the windowclass */

    /* The Window structure */
    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure; /* This function is called by windows */
    wincl.style = CS_DBLCLKS; /* Catch double-clicks */
    wincl.cbSize = sizeof (WNDCLASSEX);

    /* Use default icon and mouse-pointer */
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL; /* No menu */
    wincl.cbClsExtra = 0; /* No extra bytes after the window class */
    wincl.cbWndExtra = 0; /* structure or the window instance */
    /* Use Windows's default color as the background of the window */
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

    /* Register the window class, and if it fails quit the program */
    if (!RegisterClassEx (&wincl))
    return
    0;

    /* The class is registered, let's create the program*/
    hwnd = CreateWindowEx (
    0, /* Extended possibilites for variation */
    szClassName, /* Classname */
    "Windows App", /* Title Text */
    WS_OVERLAPPEDWINDOW, /* default window */
    CW_USEDEFAULT, /* Windows decides the position */
    CW_USEDEFAULT, /* where the window ends up on the screen */
    544, /* The programs width */
    375, /* and height in pixels */
    HWND_DESKTOP, /* The window is a child-window to desktop */
    NULL, /* No menu */
    hThisInstance, /* Program Instance handler */
    NULL /* No Window Creation data */
    );

    /* Make the window visible on the screen */
    ShowWindow (hwnd, nFunsterStil);

    /* Run the message loop. It will run until GetMessage() returns 0 */
    while (GetMessage (&messages, NULL, 0, 0))
    {
    /* Translate virtual-key messages into character messages */
    TranslateMessage(&messages);
    /* Send message to WindowProcedure */
    DispatchMessage(&messages);
    }

    /* The program return-value is 0 - The value that PostQuitMessage() gave */
    return messages.wParam;
    }


    /* This function is called by the Windows function DispatchMessage() */

    LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    switch (
    message) /* handle the messages */
    {
    case
    WM_DESTROY:
    PostQuitMessage (0); /* send a WM_QUIT to the message queue */
    break;
    default:
    /* for messages that we don't deal with */
    return DefWindowProc (hwnd, message, wParam, lParam);
    }

    return
    0;
    }

    #include <iostream>
    using namespace std;

    int main ()
    {
    cout << "Hello World! "; // prints Hello World!
    cout << "I'm a C++ program"; // prints I'm a C++ program
    system("PAUSE");
    return
    0;
    }
    Bene, mo ho compilato il programma e ho creato un file exe e l'ho aperto, mi visualizza un prompt con scritto "Premere un tasto per continuare . . .", io lo premo e si chiude il prompt.

    Posso dire di aver fatto un piccolo progresso.

    Ora come "trasformo" una pagina php in C++? (ovviamente verrà meglio)


    Grazie,
    foreach
    Codice PHP:
    foreach($vettore as $chiave => $valore) {
    echo 
    "Ciao";


  9. #9
    L'avatar di AlexKidd
    AlexKidd non è connesso Altervistiano Junior
    Data registrazione
    09-02-2007
    Messaggi
    516

    Predefinito

    in un programma o c'è la funzione main() o la WinMain() , quindi scegli

    il main() si usa per i programmi che usano (solo) la console (questo vale solo per windows ovviamente)
    winmain() è per i programmi grafici (che iniziano caricando una finestra o che comunque fanno uso delle API di windows)

    per iniziare ti consiglierei di usare main()

  10. #10
    L'avatar di foreach
    foreach non è connesso Altervistiano Junior
    Data registrazione
    11-06-2008
    Residenza
    3 metri sotto terra
    Messaggi
    501

    Predefinito

    Allora ho usato winmain() come suggerito da te, ecco il risultato:



    Come mai non mi stampa ciò che ho scritto in winmain() (si vede nello scan)?





    Grazie,
    foreach
    Ultima modifica di foreach : 17-11-2008 alle ore 19.03.55
    Codice PHP:
    foreach($vettore as $chiave => $valore) {
    echo 
    "Ciao";


  11. #11
    L'avatar di AlexKidd
    AlexKidd non è connesso Altervistiano Junior
    Data registrazione
    09-02-2007
    Messaggi
    516

    Predefinito

    hai capito tutto vedo....

  12. #12
    Guest

    Predefinito

    ascolta... cerca su google una guida per win32.....

    scrivi API win32 C guida

  13. #13
    Guest

    Predefinito

    oppure cerca wxwidgets,... ma nn ho capito bene cosa vuoi fare? cosa vorresti trasformare da php a c++, con quale utilità? ciao

  14. #14
    L'avatar di foreach
    foreach non è connesso Altervistiano Junior
    Data registrazione
    11-06-2008
    Residenza
    3 metri sotto terra
    Messaggi
    501

    Predefinito

    Citazione Originalmente inviato da AlexKidd Visualizza messaggio
    hai capito tutto vedo....
    Ironia?

    Citazione Originalmente inviato da gamepeople Visualizza messaggio
    ascolta... cerca su google una guida per win32.....

    scrivi API win32 C guida
    Si ho trovato una guida (link) ma al passaggio 3 mi blocco perché Dev mi dà errori nella compilazione, mi aiutate?




    Grazie,
    foreach
    Codice PHP:
    foreach($vettore as $chiave => $valore) {
    echo 
    "Ciao";


  15. #15
    L'avatar di foreach
    foreach non è connesso Altervistiano Junior
    Data registrazione
    11-06-2008
    Residenza
    3 metri sotto terra
    Messaggi
    501

    Predefinito

    Salve,

    ho letto il regolamento e ho visto che è possibile fare un doppio post dopo una settimana dall'ultimo post e non è possibile riesumare vecchi topic, ma non credo sia utile creare un'altra discussione con lo stesso argomento.

    Se poi qualcuno dello staff crede che sia opportuno separare le parti, faccia pure

    Dunque:

    ho creato un progetto C++ in winmain(), ho creato un menù e ho piantato il zippo, ora ho da chiedervi:

    1. Come faccio in modo che il programma si apra a finestra ingrandita?
    2. Come creo dei menù in voce menù? (le voci semplici le so)
    3. Come creo l'interfaccia grafica sistemando le barre, le schermate, ecc...?
    4. Come inserisco dei bottoni che mi facciano operazioni?
    5. Dove si possono salvare le impostazioni di un programma?
    6. Come associo a Windows l'estensione di un file al mio programma?



    Grazie e buone feste,
    foreach
    Ultima modifica di foreach : 26-12-2008 alle ore 23.35.25
    Codice PHP:
    foreach($vettore as $chiave => $valore) {
    echo 
    "Ciao";


  16. #16
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    quando le domande arrivano a questo livello, forse è il momento di spostarsi in un luogo più adatto:

    - it.comp.lang.c++

  17. #17
    Guest

    Predefinito

    Citazione Originalmente inviato da Zorinik Visualizza messaggio
    Foreach non riuscirai mai a vedere l'esecuzione di quel programma perché stampa quelle stringhe a video e si chiude subito dopo, devi mettere qualcosa che fermi l'esecuzione in modo da permetterti di leggerle.
    So che non è il massimo, ma io quando iniziavo come te le prime nozioni di C++ (ora sono mesi che non ci metto mano) usavo:
    Codice:
    system("PAUSE");
    Sarebbe più corretto mettere
    Codice:
    getchar();

  18. #18
    L'avatar di foreach
    foreach non è connesso Altervistiano Junior
    Data registrazione
    11-06-2008
    Residenza
    3 metri sotto terra
    Messaggi
    501

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    quando le domande arrivano a questo livello, forse è il momento di spostarsi in un luogo più adatto:

    - it.comp.lang.c++
    Non hai un link ad una pagina specifica che risponde alle mie domande?

    Citazione Originalmente inviato da gabryhacker Visualizza messaggio
    Sarebbe più corretto mettere
    Codice:
    getchar();
    Quello l'ho già sistemato...



    Grazie e buone feste,
    foreach
    Codice PHP:
    foreach($vettore as $chiave => $valore) {
    echo 
    "Ciao";


  19. #19
    L'avatar di AlexKidd
    AlexKidd non è connesso Altervistiano Junior
    Data registrazione
    09-02-2007
    Messaggi
    516

    Predefinito

    Citazione Originalmente inviato da foreach Visualizza messaggio
    Non hai un link ad una pagina specifica che risponde alle mie domande?
    se usi dev-c++ stai usando le API di windows 32bit, quindi puoi leggerti questo libro (esiste anche in italiano)

    http://www.charlespetzold.com/pw5/index.html

    dove c'è una risposta per ogni tua domanda

  20. #20
    L'avatar di foreach
    foreach non è connesso Altervistiano Junior
    Data registrazione
    11-06-2008
    Residenza
    3 metri sotto terra
    Messaggi
    501

    Predefinito

    Ma ho visto, quello è un libro che si compra... per avere qualcosa gratis?




    Grazie,
    foreach
    Codice PHP:
    foreach($vettore as $chiave => $valore) {
    echo 
    "Ciao";


  21. #21
    Guest

    Predefinito

    Guarda che in rete si trovano molte guide sul C/C++ e poi se proprio vuoi quel libro... usa e-mule.

    E poi se già conosci un linguaggio di programmazione ci metterai poco a leggerti un manualetto sul C++ ed iniziare a conoscerlo meglio...
    magari iniziando a fare programmi semplici come quello che ti scrive "Hello world" sullo schermo per poi arrivare a programmi complessi come una CALCOLATRICE o un editor di testo.
    Secondo me stai sbagliando... miri troppo in alto... inizia da zero se vuoi imparare il C++ fai finta di non sapere il PHP
    spero di esserti stato utile
    per polemiche o chiarimenti sono qui
    Ciao
    Ultima modifica di atterzolivello : 29-12-2008 alle ore 22.49.14

  22. #22
    L'avatar di foreach
    foreach non è connesso Altervistiano Junior
    Data registrazione
    11-06-2008
    Residenza
    3 metri sotto terra
    Messaggi
    501

    Predefinito

    Si ti do ragione atterzolivello, ma il fatto che io il normale main() più o meno lo conosco, non mi voglio soffermare inutilmente lì, ho da fare un programma ma non è cosa...
    Codice PHP:
    foreach($vettore as $chiave => $valore) {
    echo 
    "Ciao";


  23. #23
    Guest

    Predefinito

    Allora ti dico una cosa "il normale main()" è una funzione
    le funzioni in C/C++ sarebbero i sottoprogrammi
    con il termine main si indica la funsione principale del programma ossia quella che viene eseguita per prima e contiene tutte le istruzioni che svolge il programma e chiamate ad altre sotto-funzioni
    questa ha la particolarità di non restituire nessun valore alla sua "funsione chiamante" infatti quest'ultima sarebbe il Sistema Operativo e per tanto la main non riceve alcun valore da essa ecco perchè si scrive int main (void) e alla fine return 0 (ora non andare in giro a dire che ti ho detto che il SO è una funsione sto cercando solo di farti capire)

    Le istruzioni del C ad esempio printf(""); o nel tuo caso cin cout sono contenute nelle LIBRERIE (iostream.h)
    la main con queste cose non centra...

    Ora se io voglio fare un videogioco in C++ e inutile che mi metto a scrivere codice ma devo usare delle librerie apposite e nel caso dei videogiochi un esempio può essere allegro.h e chiaro che per usare questa libreria devo saper PROGRAMMARE AD OGGETTI IN C++ quindi oltre a sapere tutta quella parpardella teorica sulla programmazione ad oggetti devo sapere come è possibile in C++ creare gli oggetti le classi eccetera cioè devo conoscere le "funsioni" o istruzioni che mi mette a disposizione il linguagigo di programmaizone per poter PROGRAMMARE AD OGGETTI e poi posso usare tranqulillamente le funsioni della libreria allegro.h (se non lo hai ancora capito le librerie possono essere considerare come "contenitori di funzioni" ossia "cose già scritte per noi" un esempio? printf(); è una funzione della libreria stdio.h del C )

    Spero di esserti stato utile
    Ciao

  24. #24
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Citazione Originalmente inviato da atterzolivello Visualizza messaggio
    questa ha la particolarità di non restituire nessun valore alla sua "funsione chiamante" infatti quest'ultima sarebbe il Sistema Operativo e per tanto la main non riceve alcun valore da essa ecco perchè si scrive int main (void) e alla fine return 0
    mai più palese incorrettezza fu scritta: se non restituisse nessun valore, sarebbe definita come void main(). Il valore che il main() restituisce viene passato al sistema operativo, e rappresenta il risultato del programma. La prassi è restituire 0 quando il programma termina correttamente, altri valori in caso di errore.

    Ora, foreach, se vuoi rimanere qui a farti dare mezze soluzioni e suggerimenti così così, fai pure. Saggio potrebbe essere spendere soldi in un libro, oppure partecipare in un altro forum o newsgroup dove la gente si concentra sul C++, che è assai diverso dal php. Se non noti le differenze, preoccupati, vuol dire che non ne sai abbasta dell'uno e dell'altro linguaggio, parimenti.
    Ultima modifica di dreadnaut : 29-12-2008 alle ore 23.58.01

  25. #25
    Guest

    Predefinito

    Citazione Originalmente inviato da foreach Visualizza messaggio
    ho letto il regolamento e ho visto che è possibile fare un doppio post dopo una settimana dall'ultimo post ...
    Per la stanza Pubblicità e collaborazione è vietato effettuare UP (portare la propria discussione in alto nella lista, ovvero scrivere messaggi consecutivi) prima di 7 giorni dal proprio ultimo messaggio, se si vogliono aggiungere informazioni si dovrà editare il proprio messaggio.



    Ciao!

  26. #26
    Guest

    Predefinito

    Allora mi spiego meglio, poi se sbaglio correggimi pure dreadnaut sono qui per imparare:
    In realtà la funzione main, secondo una delle versioni del C puro (ANSI) deve essere di tipo void perchè non deveritornare alcun valore al SO e quest'ultimo non gli deve passare alcun parametro
    (per le istruzioni di I/O ci sono scanf, printf o altri come getch o ghetchar) quindi sarebbe più lecito scrivere:
    Programma 1:
    #include <stdio.h>
    void main (void){
    printf("ciao");
    return;
    }
    L'istruzione return ha il compito, detto in parole povere, di dire che la funsione è terminata e di far ritornare il controllo alla funsione chiamante, nel nostro caso il so, se accompagnata da un valore costante (return 0;) o da una variabile essa restituisce tale valore alla funsione chiamante.
    Il segunente programma:
    Programma 2:
    #include <stdio.h>
    main (){
    printf("ciao");
    }
    Corrisponde a questo:
    Programma 3:
    #include <stdio.h>
    int main (void){
    printf("ciao");
    return 0;
    }
    entrambe le funsioni sono di tipo intero cioè restituiscono un valore intero ma non ha senso restituire un valore al so perchè non sarebbe più possibile riutilizzarlo una volta terminato il programma quindi si mette return 0;
    Siccome return 0; è l'ultima operazione che viene eseguita prima della fine del programma si usa mettere 0 per dire e indicare chè il programma è stato eseguito correttamente ma questa istruzione non restituisce altri valori se il programma non è stato eseguito correttamente altrimenti a posto di zero si sarebbe messa una variabile il fatto è che se questa viene eseguita allora si deduce che il programma è stato eseguito correttamente (e di questo ce ne possiamo accorgere usando un debuggher).
    I tre progammi da me presentati funzionano correttamente e fanno la stessa cosa solo che il primo è quello più corretto invece il terzo è la copia del secondo perchè in quest'ultimo int, void e return 0; vengono sottointesi il vantaggio di tutto questo è una pratica molto comune nei programmatori C/C++ cioè il risparmio di righe di codice e di conseguenza di memoria. Ma ciò non toglie che qualche compilatore possa dare qualche problema quando vede queste cose (in particolare mi riferisco ai programmi 1 e 2), questi sono quelli che alcuni definiscono "i dialietti del C".
    Spero di essere stato esauriente, comunque sono daccordo con te questo non è il posto adatto per parlare di cerce cose.
    Ciao.
    :-)

    Edit:
    return; solo senza zeri o variabili a fianco sta a dire che nessun valore deve ritornare alla funsione chiamante.

    Edit:
    Varie versioni del c dicono cose differenti infatti la più recente dice che main deve restituire un valore intero quindi essere di tipo int ma resta comunque il fatto che il valore restituito non è per forsa il risultato del programma, o 0 o un bel messaggio di errore.
    Il modo più corretto sarebbe, per alcuni, quindi il programma 3 ma va bene anche il 2 e 1.
    Se si dichiara una funsione sensa specificarne il tipo per default quella funsione è intera int main se tra le parentesi non si mette niente allora vuol dire che la funsione non prende nulla ma ciò non toglie che si possa scrivere int main(int p) o void main (int p)
    a seconda di quello che si vuole fare con il programma è possibile sceglere:
    #include<stdio.h>
    int p = 0;
    int main (p){
    printf("%d", p);
    return 0;
    }
    (esegui il programma da linea di comando scrivendo: programma.exe 1 dove 1 è il valore che assegniamo a p)
    non è detto che questo funzioni correttamente. Comunque secondo me si scrive int main per poter sfruttare la regola che se scrivo main () è basta è sottointeso int e quindi risparmio memoria.

    i dialetti del ci sareebbero proprio questi
    Ultima modifica di atterzolivello : 30-12-2008 alle ore 15.44.43

  27. #27
    L'avatar di foreach
    foreach non è connesso Altervistiano Junior
    Data registrazione
    11-06-2008
    Residenza
    3 metri sotto terra
    Messaggi
    501

    Predefinito

    Citazione Originalmente inviato da atterzolivello Visualizza messaggio
    Guarda che in rete si trovano molte guide sul C/C++ e poi se proprio vuoi quel libro... usa e-mule.
    Sì, l'ho messo a scaricare ma non con emule... provo a vedere se lì c'è qualcosa di utile per me...

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Ora, foreach, se vuoi rimanere qui a farti dare mezze soluzioni e suggerimenti così così, fai pure. Saggio potrebbe essere spendere soldi in un libro, oppure partecipare in un altro forum o newsgroup dove la gente si concentra sul C++, che è assai diverso dal php.
    Si infatti hai ragione, io provo qui se qualcuno mi dà una mano, sennò vado su forum dove l'argomento principale è il C++, o proprio estremamente mi prenderò o scaricherò da internet un libro.

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    Se non noti le differenze, preoccupati, vuol dire che non ne sai abbasta dell'uno e dell'altro linguaggio, parimenti.
    Infatti il titolo della discussione è "Iniziando con C++ partendo da php", quindi tutte le differenze




    Grazie,
    foreach [...]
    Codice PHP:
    foreach($vettore as $chiave => $valore) {
    echo 
    "Ciao";


Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •