Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [c++/ .NET] progetto applicazione windows form

    salve a tutti!

    mi sono buttato recentemente nella programmazione .net, ma con visual studio 2013 sinceramente non mi trovo così bene...

    come faccio a creare un'applicazione windows form correttamente?
    nel senso che siccome nei menu di creazione progetti di visual basic o c# è presente la voce "applicazione windows form", perchè con il visual c++ no?

    in ogni caso ho creato un progetto vuoto e aggiunto poi una form. il problema è sorto quando ho cercato di compilare ma è risultato un problema dovuto al linker. All'inizio mi dice che avrei dovuto dichiarare nelle proprietà del progetto l'entry point, così ho cercato un po su internet e ho scoperto che bisogna specificare il sottosistema, ma impostando WINDOWS( ma ho provato anche con altri ) risulta un altro errore e qui mi sono fermato e così ho preferito affidarmi al vostro aiuto.

    come bisogna procedere correttamente?

    grazie in anticipo

  2. #2
    scusate se insisto, ma non c'è proprio nessuno un po esperto in visual studio 2013 ? se qualcuno lo usa, mi potrebbe dire come aggiungere una form al proprio progetto? la domanda è questa.

    grazie

  3. #3
    Credo che il motivo per cui nessuno risponde è che non è chiaro che cosa stai facendo/cosa vuoi fare... vuoi scrivere un progetto C++/CLI con le Windows Forms (occhio, non è C++ "normale")? Vuoi scrivere un progetto nativo con GUI? Altro ancora?

    Inoltre, non so quanti esperti di C++/CLI ci siano qui, dato che è un linguaggio che si usa piuttosto di rado; normalmente se uno scrive un'applicazione .NET non sta a perdere tempo con le stranezze di un linguaggio ibrido come C++/CLI (che eredita tutte le menate "classiche" del C++, più un set aggiuntivo di simboli e regole per la gestione degli oggetti managed), ma la scrive direttamente in C#. Onestamente, io userei C++/CLI soltanto quando c'è da fare del marshaling particolarmente complicato (ovvero, quando c'è da scrivere un wrapper .NET di roba nativa con cui è difficile lavorare da C# usando solo PInvoke), volendo lavorare in ambito .NET "puro" si fa molto prima in C# (e con molto meno mal di fegato).
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Premetto che non conosco il c#, ho solo chiesto se qualcuno è abbastanza esperto nella creazione di un progetto con una form: questo è il mio obbiettivo; sto imparando a programmare in .net e senza una form mi risulta piuttosto inutile...

    se sai come fare a creare un progetto .net con form ( c++ ) o come lo chiami te, ti pregherei di dirmelo

    grazie e scusa ma non me ne intendo molto

  5. #5
    Quello che ti sto dicendo è che usare C++/CLI giusto per creare un'applicazione Windows Forms non ha senso.

    Mi spiego meglio.

    Il C++ che si usa di solito è il C++ "nativo", ovvero viene compilato in codice macchina; il C++ nativo non ha nulla a che vedere con .NET. Ovviamente è possibile scrivere programmi C++ con interfacce grafiche, ma non con Windows Forms (che è una libreria .NET); da Visual Studio attualmente i toolkit "standard" per scrivere interfacce C++ native sono MFC e ATL, anche se entrambi risentono abbastanza della loro età (sicuramente non scriverei un'applicazione MFC nel 2013).

    Per sfruttare .NET da C++, è stato inventato il cosiddetto "C++/CLI" (prima c'era il Managed C++, ma è stato subito rimpiazzato perché era molto ingarbugliato da usare). In C++/CLI si hanno a disposizione tutte le normali features del C++, più un set di funzionalità pensato per lavorare in .NET; quello che viene generato sono degli assembly ibridi, metà .NET e metà nativi.

    Lo scopo principale di C++/CLI è di interoperabilità: se devo esporre al "mondo .NET" delle librerie native, oppure mi serve scrivere necessariamente del codice nativo per certe funzionalità per motivi di prestazioni, il C++/CLI è molto comodo, dato che è il compilatore a smazzarsi tutto il codice di compatibilità tra C++ "nativo" e C++ managed.

    In tutti gli altri casi, C++/CLI è una pessima idea; vai ad ereditare tutte le menate del C++ "normale" (sistema degli #include, tempi di compilazione biblici, undefined behavior sempre dietro l'angolo, linguaggio estremamente complesso), ci aggiungi la complessità dell'interazione tra le parti native e le parti managed, perdi in portabilità (il C++/CLI lo capisce solo il compilatore Microsoft, ed è disponibile solo per Windows) e non ottieni alcun vantaggio rispetto all'uso di un linguaggio ben più pulito e che è pensato fin dall'inizio per lavorare in ambito .NET come C#.

    Per cui, in sintesi:
    • vuoi fare un'applicazione grafica in .NET (o comunque, un'applicazione che vive solo in ambito .NET)? Usa C#.
    • vuoi fare un'applicazione grafica in C++ nativo? Usa C++ e un qualche toolkit moderno (al solito io consiglio le Qt, ma ci sono anche le wxWidgets e diverse altre).
    • ti serve un layer di compatibilità tra codice nativo e codice managed? Allora può aver senso C++/CLI. Negli altri casi, è una perdita di tempo inutile.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    ok, grazie per la spiegazione

    guarda io sto imparando da un video corso di youtube ad opera di "fcamuso". secondo me è un ottima guida, nella quale insegna anche la .NET in c++.

    da quello che hai detto mi tocca imparare anche il c#, haha

    grazie ancora!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.