2012-05-25 12 views
5

È possibile anche creare un livello GUI in C# e il resto dell'applicazione in C++? Se non sbaglio, uno dei software antivirus ha una GUI fatta in Delphi. Come potrebbe essere fatto?È possibile? GUI in C#, app in C++

+1

Per quale motivo? –

+0

Sì, Visual Studio è stato scritto in C++ con un front-end WPF. –

risposta

4

Sono disponibili diverse opzioni per farlo, tra cui:

  1. Usa P/Invoke per chiamare nella DLL C++ da C#.
  2. Esporre un'interfaccia COM dal codice nativo e chiamarla da C# utilizzando COM interop.
  3. Scrive un servizio Windows nativo e chiama dal codice gestito.
  4. Utilizzare C++/CLI per scrivere una libreria gestita in C++, che è possibile collegare facilmente da C#.

Se stai partendo da zero, l'opzione 4 è probabilmente l'opzione migliore. (Oltre a scrivere l'intera cosa in C#, vale a dire.) Le prime tre opzioni comportano un po 'di ulteriore agitazione e overhead, e probabilmente non valgono la seccatura se non si ha una ragione convincente come la necessità di interagire con una libreria nativa esistente o che ha bisogno di un'architettura orientata ai servizi.

3

scrivere la logica dell'app in C++ dll, quindi utilizzare pinvoke da C# per parlare con la DLL.

+0

Il problema con questo è che è molto difficile usare molto più di una api stile c con la chiamata di piattaforma. Devi gestire nomi di funzioni storpiati e quindi devi ancora gestire il codice orientato agli oggetti in modo diverso. Un wrapper COM probabilmente sarebbe una scommessa migliore. Ovviamente, è sempre possibile racchiudere il codice orientato agli oggetti in una API in stile C. –

+0

@ JonathanHenson hai ragione signore. Buona osservazione –

4

Se si scrive la logica aziendale in C++/CLI e l'interfaccia utente in C#, non dovrebbe essere un problema. Se si desidera scrivere in puro ANSI C++, potrebbe essere necessario scrivere wrapper C++/CLI attorno agli oggetti che si desidera esporre a C#.

1

Vedere this answer. Sembra per rispondere alla tua problema

Problemi correlati