Facendo 'di più' con C su Windows di programmi molto semplici?

4

Attualmente sto imparando C tramite 'C Primer Plus' come consigliato da molte persone qui e lo trovo molto interessante - le spiegazioni approfondite di come e perché facciamo certe cose in C sono piuttosto grandi oltre a sentirmi dire cosa fanno le cose e non andare oltre ...

Mi sento come se tutto quello che posso fare con C al momento sia la matematica, che non è molto stimolante quando cerco di immaginare di mettere insieme varie applicazioni nella mia testa (oltre ai calcolatori (-_-)). Sono solo a circa metà del libro quindi non ha ancora trattato cose come la dichiarazione if, ma sto solo prendendo le cose con calma - conosco già una buona quantità di concetti di programmazione dato che sono abbastanza capace in PHP.

La mia domanda è - ci sono tutorial che sono pezzi interessanti del codice sorgente che le persone possono collegarmi a ciò mi ispireranno e mi istruiranno al di là dei loop / variabili / operatori / ecc. Funzionalità di programmazione universali che mi daranno un'idea della programmazione. con l'API di Windows? O cose lungo quelle linee?

Ho trovato PHP bene da imparare visto che conoscevo già html / css che ovviamente gestiva il front-end delle mie applicazioni web, così come il contrario - ottenendo dati di input da moduli, interagendo con un database ecc., ma con CI don Non conosco altro che "backend" e materiale I / O standard.

Mille grazie a quelli che possono collegare alcune risorse interessanti - molti siti sembrano essere piuttosto vecchi, il che è abbastanza giusto (cosa, con C che è stato intorno per 40 anni?), ma non sto programmando per computer di 40 anni quindi ...

    
posta Anonymous 09.06.2011 - 23:20
fonte

8 risposte

3

Non sono sicuro di aver capito il tuo problema. C è un linguaggio di programmazione dei sistemi, destinato a risolvere problemi come questi:

  • come posso copiare questo file da un computer all'altro
  • Voglio vedere se queste directory sono cambiate
  • Voglio scrivere un programma che servirà i file sul web

Questi sembrano tutti problemi interessanti, non matematici per me. Il secondo programma C che ho scritto (25 o più anni fa) era quello di scrivere l'origine del programma APL su una stampante ad aghi. Inoltre non matematico.

Forse il tuo problema è che non hai ancora trovato un problema interessante che C possa risolvere per te? Ma questo è profondamente, profondamente il tuo problema - nessun altro può trovare una soluzione per questo.

    
risposta data 09.06.2011 - 23:58
fonte
1

Nel passato, il libro di Charles Petzold era il modo in cui le persone imparavano a programmare direttamente all'API Win32 usando C. È vecchio, ma le recensioni di Amazon indicano che è ancora del tutto pertinente.

Avendo programmato GUI per Windows per circa 20 anni, suggerirei una cosa. Il cuore di ogni programma Windows è ciò che è noto come message pump. Molti sistemi di programmazione nascondono questo da te, ma se scrivi direttamente C, devi farlo tu stesso. In ogni caso, una parte della pompa è un interprete di messaggi, e Petzold scrive le sue affermazioni come interruttore gigante. Va bene pedagogicamente, ma molte persone lo hanno preso come uno stile di codifica, il che rende il codice molto difficile da mantenere. Quindi, invece di caricare tutto il codice di elaborazione dei messaggi nella stessa istruzione switch, come fanno gli esempi di Petzold, ogni caso chiama una routine che elabora quel tipo di messaggio. (Ci sono altri modi per fare ciò che preferisco, ma sono un po 'fantasiosi se stai solo imparando C.)

    
risposta data 09.06.2011 - 23:53
fonte
1

Um, non lasciare che le persone ti spaventino dalla programmazione dell'API Win32. Ha un sacco di diverse strutture e amp; funzioni e amp; classi e amp; interfacce ma ha anche un sacco di documentazione e amp; openess su come funziona il sistema operativo (non aspettatevi questo da Apple & MacOS o iOS;))

Una volta che inizierai a fare app di Win32 pura, scoprirai come funziona un sistema operativo, sarai in grado di creare app per Windows che funzionino con qualsiasi versione di Windows e amp; scopri quanto sei più potente nel far fare al computer qualcosa (e farlo velocemente) di un demone che usa wxPython o c ++ QT.

Le mie prime app per win32 erano:
- Paint CLone: disegna gli oggetti sullo schermo con il mouse
- Generatore di playlist casuale: consente di trovare, aprire, eliminare file di tipi diversi
- Libreria semplice Task Scheduler: programma facilmente le attività su qualsiasi versione di Windows (molto utile)
- Crea il mio screen saver personalizzato - Inserisci una funzione per un grafico (y = mx + b) & disegnare quel grafico usando GDI

    
risposta data 10.06.2011 - 02:47
fonte
1

Se non ti interessa specificamente l'API di Windows ma vuoi solo imparare come scrivere programmi più complessi in C, imposta una VM Linux e installa pacchetti sorgente da qualunque programma tu ritenga interessante. C è la lingua-franca del mondo * nix e ci sono un sacco di applicazioni che vanno dal assolutamente banale al complesso da incubo. Inoltre, se sei interessato alla programmazione della GUI in C avrai accesso a GTK +, che nel mio parere (non esattamente popolare) è una API grafica migliore per C.

Anche se decidi di restare con Windows, se stai usando Visual Studio suggerirei di scaricare GCC. Il supporto C99 di Visual Studio è praticamente inesistente e ci sono molte funzioni interessanti in C99 che rendono l'utilizzo di C IM molto più piacevole.

    
risposta data 10.06.2011 - 03:41
fonte
1

Penso che la prima cosa "interessante" che si apprenderà con un libro di primer su C sia come manipolare i file - e in realtà, è un buon punto per iniziare a creare programmi più complessi. Fino a quel momento, tutto è essenzialmente un programma giocattolo.

Trovo che il modo più semplice per gestire la GUI di Windows sia l'utilizzo di SDL. Ti dà un bel set di strumenti con cui lavorare, pur continuando a dare il controllo completo sul contenuto della finestra.

Se vuoi fare scherzi con il 3D, d'altra parte, le esercitazioni di OpenGL di NeHe sono un ottimo modo per immergerti proprio in questo: fornisce esempi di codice sorgente che creano una struttura minima che è sufficiente per fornirti un contesto di rendering OpenGL.

Inoltre fa del suo meglio per spiegare che cosa è ogni linea nella configurazione di Windows; All'inizio probabilmente ti verrà sopra la testa, ma una volta che inizi a capire come funziona il pump dei messaggi, avrà più senso.

Naturalmente, anche questo è solo di tanto uso finché non impari come aprire e manipolare i file. :)

Le esercitazioni di NeHe possono essere trovate qui:

link

    
risposta data 10.06.2011 - 03:41
fonte
0

Per prima cosa devi imparare tutta la matematica di base per capire le basi del codice, in seguito passerai alle istruzioni if, alle classi, e da lì puoi creare un'applicazione con controlli e pulsanti che possono fare tutto ciò che desideri per fare, continua a leggere, le basi sono noiose ma diventa più complesso e man mano che diventa più complesso ottieni più possibilità.

    
risposta data 09.06.2011 - 23:24
fonte
0

Dato che stai imparando C, ottieni una buona comprensione dei puntatori e di tutto l'incubo che li accompagna. Impara a pensare cosa fanno i bit.

Quindi puoi scegliere alcuni argomenti interessanti come la programmazione di un motore di gioco con OpenGL o un'app GUI con WinAPI. Sono entrambi orientati al C.

    
risposta data 10.06.2011 - 00:04
fonte
0

Potrebbe non adattarsi a ciò che si vuole fare, ma si potrebbe considerare l'utilizzo di un linguaggio di livello superiore rispetto a C. Sarai in grado di fare cose interessanti più velocemente in questo modo (a meno che le cose che ti interessano siano intrinsecamente piuttosto basse) operazioni di livello).

    
risposta data 10.06.2011 - 00:20
fonte

Leggi altre domande sui tag