|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2010
Città: Leuven
Messaggi: 667
|
[C++] Programma in c++ e GUI con WPF: è possibile?
Buon giorno,
stamattina, mi stavo domandando se ci fosse un modo facile per fare un'interfaccia grafica con WPF da "appiccicare" su un programma in C++. Al momento le uniche possibilità che vedo è: 1) usare C++/CLI 2) Fare una o più dll in C++ e caricarle con un piccolo wrapper per managed unmanaged e menate varie... 3) fare due processi separati e distinti: Un core in C++ che gira in background e una gui in C# che "chiama" il processo in background in C++ (che è lunga come strada ma sicuramente la meno cervellotica) Alternative? Onestamente viste le mie doti di GUI designer (
__________________
L'elettronica digitale non esiste, è solo elettrotecnica con interruttori piccoli!
|
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Oct 2010
Città: Savona
Messaggi: 194
|
La butto la, forse sarò ovvio hai provato con l'interoperabilità fra COM e .NET,
qui ecco una breve guida da MSDN: Introduction to COM Interop COM Interoperability in Visual Basic and Visual C#
__________________
AMD Phenom II X6 3Ghz, MB Gigabyte 790xta-ud4 F4A, 4Gb Ram ddr3, HD Segate Barracuda 1T, SV ASUS GTX 560 Ti DirectCu II ,Monitor Philips 1920x1080 led 2 ms, Xbox360 Slim, Tablet Asus Transformer Pad TF300T, Gameboy Advance, Ipod Touch 16Gb Ultima modifica di AllerITA : 01-06-2013 alle 10:52. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Aug 2003
Città: Barletta (BA)
Messaggi: 939
|
Non credo ci siano alternative oltre quelle elencate, e tra le 3 la migliore a mio avviso è l'ultima
Anche nel caso volessi portare la tua app su Mac OS X, Linux, Android, iOS... Quali sono i motivi che ti fanno preferire WPF a Qt?
__________________
In a world without fences, who needs Gates? Power by: Fedora 8 - Mac OS X 10.4.11 |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Quote:
Però fare il wrapper managed mi era sembrata una soluzione molto elegante. Ma non portabile, come dice nico. |
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Apr 2010
Città: Leuven
Messaggi: 667
|
Quote:
Non ho nessuna esigenza di portabilità. Siccome non ho requisiti temporali stringentissimi volevo sfruttare l'occasione per imparare un po'di C++. Solo che su win WPF mi sembra quasi imbattibile come interfaccia grafica, ma soprattutto ho notato quanto è facile da usare. Ho provato a compilare un'applicazione che usa WxWidgets da windows ed è un incubo... (cosa che in Ubuntu a casa mi ha richiesto penso 15 secondi :-/ ). Io trovo incredibile il fatto che Microsoft da una parte punta a C++ e dall'altra si "dimentica" di portare uno dei framework meglio riusciti della storia proprio a questo linguaggio
__________________
L'elettronica digitale non esiste, è solo elettrotecnica con interruttori piccoli!
|
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Aug 2003
Città: Barletta (BA)
Messaggi: 939
|
Quote:
Io ho usato Qt tramite Python e l'ho trovato semplice nell'utilizzo, poi a te la scelta finale Non è che Microsoft si dimentica, è che .Net non si è evoluto come le sperenza interne a MS .Net fu pensato per diventare l'unico ambiente di programmazione supportato da MS, qualcosa che avrebbe dovuto inglobare tutti gli altri (vedi C++/Cli, IronPython, IronRuby...) WPF è stato creato per offrire un tassello in più a questa visione interamente "managed", non è pensato per essere utilizzato da altro che non sia .Net Poi WPF ha rivelato dei grossi problemi prestazionali in parte sistemati negli anni, lo stesso .Net non ha mai brillato in prestazioni ed alla fine MS da ricreare tutta la shell di Windows in .Net e WPF...è passata a Windows 8 Runtime MS aveva pensato anche ad un OS interamente managed La realtà dei fatti è che internalmente a MS .Net non ha avuto i consensi sperati, accusato di essere troppo lento per i bisogni delle altre divisioni (Windows prima di tutte) Inoltre nel frattempo MS da pensare "al desktop del futuro" se ne è uscita con quella cosa che è Windows 8...dove pare che non ci sia più spazio per app complesse ma solo cose da tablet In Windows 8 Runtime si vedono i nuovi piani di MS, dove .Net non è altro che uno dei vari ambienti di sviluppo insieme a Javascript e C++ Il team Windows ha preso direttamente il controllo della cosa ed ha creato in C/C++ quello che doveva essere fatto da .Net, creando così un set di api come dicono loro "nativo e performante" Il sogno di avere un OS interamente managed è morto, l'idea di avere un Windows con shell interamente managed in WPF è morto, Silverlight è morto, XNA è morto... Morale della storia chi è "rimasto" a scrivere app desktop si dovrà accontentare di un lavoro mai completato e forse anche folle Dubito che a questo punto MS farà altri investimenti importanti per lo sviluppo desktop, lasciando il mercato a soluzioni come Qt . ma quest'ultimo è solo un mio pare
__________________
In a world without fences, who needs Gates? Power by: Fedora 8 - Mac OS X 10.4.11 Ultima modifica di nico159 : 03-06-2013 alle 08:35. |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Quote:
Sinceramente credo che attualmente, in ambito programmazione desktop in ambiente windows, non vi sia alcuno strumento paragonabile alla piattaforma .NET e che questa sia lungi dall'essere messa da parte dalla Microsoft. Riguardo alla questione performance, è sempre stato un argomento molto dibattutto. Ovviamente per performance particolarmente spinte il C++ è una scelta quasi obbligata, ma è questo il caso di una applicazione desktop? Nel 95% dei casi secondo me no. Basti pensare che software complessi come lo stesso Visual Studio sono scritto in .NET (e con l'ausilio proprio delle WPF come framework grafico) ed hanno performance molto valide. Altro esempio di software comune scritto sotto .NET? MusicBee (a mio modo di vedere il miglior player gratuito in circolazione, spanne sopra a quella porcata di iTunes che pure è scritta in C++ e Objective-C). Ultima modifica di [Kendall] : 03-06-2013 alle 16:02. |
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Aug 2003
Città: Barletta (BA)
Messaggi: 939
|
Quote:
Sono d'accordo che per una app desktop tipica avere delle performance al top sia secondario, ma un conto è dire "Ok, offriremo anche .Net" come stanno facendo da Windows 8 ed un altro è dire "Dovete scrivere i vostri software in .Net, è il futuro per chi scrivere app su Windows" Visual Studio è un insieme di più linguaggi e sistemi, non mi stupirei di sapere che in .Net sono scritte parti come l'interfaccia grafica, mentre viene lasciato in C++ parti più pesanti come l'analisi del codice L'azienda che produce ReSharper, plugin famoso per chi programma in .Net, ha dovuto migrare da C# a C++ per l'analisi del codice in ReSharper 7, perchè .Net era troppo lento Comunque non è questo il luogo per dire ".Net è il futuro/.Net ormai è solo uno delle tante cose che fa MS, non è più una tecnologia chiave" Era più una analisi sul perchè WPF non è stato pensato per essere usato da altro che non .Net, del perchè il Windows 8 Runtime non è in .Net, della "rinascita del codice nativo" e l'apertura a Microsoft all'ambiente HTML5 come ambiente entry level (di cui prima Visual Basic era il riferimento), dell'abbandono di progetti come Silverlight e XNA La mia opinione in tutto questo, è visto come MS ha cambiato radicalmente idea (Windows Store! Windows 8 con app castrate!...) sperare in una rinascita del desktop da loro non lo vedo plausibile Se vuoi usare WPF, è stato pensato per essere usato da C#/VB.Net - C++/Cli non è certo un gran modo per imparare C++, almeno secondo me Quindi? Affidarsi ad aziende esterne ed usare toolkit come Qt che ti permettono di usare normale C++ su Windows, in un ambiente di facile utilizzo e ben documentato e sopratutto sempre in continuo sviluppo e miglioramento Poi ad ognuno le sue scelte Inoltre questa discussione è nata dal voler usare WPF fuori da .Net - Se usi già .Net su desktop non vedo motivo di porsi queste questioni
__________________
In a world without fences, who needs Gates? Power by: Fedora 8 - Mac OS X 10.4.11 Ultima modifica di nico159 : 03-06-2013 alle 16:45. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:06.




















