Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-06-2013, 10:14   #1
ingframin
Senior Member
 
L'Avatar di ingframin
 
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 ( ) mi dispiacerebbe abbandonare WPF per cose come WxWidgets o Qt.
__________________
L'elettronica digitale non esiste, è solo elettrotecnica con interruttori piccoli!
ingframin è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2013, 10:46   #2
AllerITA
Member
 
L'Avatar di AllerITA
 
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.
AllerITA è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2013, 22:12   #3
nico159
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
nico159 è offline   Rispondi citando il messaggio o parte di esso
Old 02-06-2013, 11:20   #4
vendettaaaaa
Senior Member
 
L'Avatar di vendettaaaaa
 
Iscritto dal: Jan 2012
Messaggi: 1267
Quote:
Originariamente inviato da ingframin Guarda i messaggi
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 ( ) mi dispiacerebbe abbandonare WPF per cose come WxWidgets o Qt.
Io avevo optato per la seconda possibilità, ci sarei riuscito se le librerie C++ (esterne) che linkavo nel mio progetto C++ nativo (scritto da me) non avessero richiesto l'uso di MFC per alcuni MessageBox...col risultato che non compilava
Però fare il wrapper managed mi era sembrata una soluzione molto elegante. Ma non portabile, come dice nico.
vendettaaaaa è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2013, 00:19   #5
ingframin
Senior Member
 
L'Avatar di ingframin
 
Iscritto dal: Apr 2010
Città: Leuven
Messaggi: 667
Quote:
Originariamente inviato da nico159 Guarda i messaggi
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?
Devo fare una piccola applicazione che si interfaccia con un database e che girerà solo su windows.

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!
ingframin è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2013, 08:26   #6
nico159
Senior Member
 
Iscritto dal: Aug 2003
Città: Barletta (BA)
Messaggi: 939
Quote:
Originariamente inviato da ingframin Guarda i messaggi
Devo fare una piccola applicazione che si interfaccia con un database e che girerà solo su windows.

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
Hai provato Qt? Offrono anche un loro IDE che funziona nativamente anche su Windows, quindi senza nessun problema "e mo come compilo tutto questo"

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.
nico159 è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2013, 15:35   #7
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da nico159 Guarda i messaggi
Hai provato Qt? Offrono anche un loro IDE che funziona nativamente anche su Windows, quindi senza nessun problema "e mo come compilo tutto questo"

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 realtà però questa mi sembra una visione decisamente pessimistica e in parte fuorviante della situazione attuale della piattaforma .NET.
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.
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
Old 03-06-2013, 16:39   #8
nico159
Senior Member
 
Iscritto dal: Aug 2003
Città: Barletta (BA)
Messaggi: 939
Quote:
Originariamente inviato da [Kendall] Guarda i messaggi
In realtà però questa mi sembra una visione decisamente pessimistica e in parte fuorviante della situazione attuale della piattaforma .NET.
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).
Se tu vedi futuri investimenti in .Net lato desktop da parte di Microsoft, meglio così

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.
nico159 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
La capsula SpaceX Dragon CRS-33 ha acces...
La NASA è sempre più vicin...
Crisi delle memorie: ASUS torna al passa...
Le console next-generation potrebbero es...
Gemini cresce ancora: la quota di mercat...
Samsung sfida TSMC: la capacità produtti...
Iliad alza il prezzo della fibra ottica ...
Il prossimo low cost di POCO sarà il più...
The Elder Scrolls VI: ecco le ultime sul...
Ecco i saldi di fine anno Amazon, 34 off...
iPhone Fold: scorte limitate al lancio m...
OpenAI porterà la pubblicità in ChatGPT ...
TSMC aumenterà ancora i prezzi: nel 2026...
Marvel pubblica anche il secondo teaser ...
Nuovo accordo tra xAI e il Pentagono: l'...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:17.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v