2012-05-17 17 views
5

Sto scrivendo un wrapper per i miei metodi C++ nativi in ​​C++/CLI che li esporremo a C#. Ora sto usando Visual Studio 2008. Qualcuno può dirmi quale tipo di progetto ho bisogno di creare in modo che il mio wrapper sarà esposto a C#. Vedo in Visual Studio 2008 ci sono diversi tipi di progetti in Visual C++ ---> CLR ---->Quale tipo di progetto deve essere creato per C++/CLI?

class library, 
CLR Empty Project, 
Windows form control library, 
CLR Console Application, 
Windows Forms Application, 
Windows Service 

Quale dovrei usare?

risposta

6

È necessario creare il progetto di tipo Libreria di classi. La cosa più importante è specificare l'opzione "Common Language Runtime Support" (impostata su "Common Language Runtime Support (/ clr)") in Proprietà progetto -> Proprietà di configurazione -> Generale

Ciò ti consentirà di utilizzare il

#pragma managed 
... use your native stuff here 
#pragma unmanaged 

pragmi e collegamento con i file .lib nativi.

Vedere questo link per i dettagli sottili

http://www.codeguru.com/cpp/cpp/cpp_managed/interop/article.php/c6867/Consuming-Unmanaged-C-Class-Libraries-from-NET-Clients.htm

C'è un fermo (non menzionato in questo articolo) per 64-bit costruisce. Il "Linker-> Input-> Force Symbol References" deve essere impostato su "_ DllMainCRTStartup" per 64-bit e su " _DllMainCRTStartup @ 12" per 32-bit.

+0

grazie per la risposta rapida, alla voce "Supporto Common Language Runtime" generale è vedere come quattro opzioni 1.) supporto common language runtime (/ CLR) 2.)/CLR: puro 3.)/CLR: sicuro 4.)/clr: oldsyntax quindi quale di questi quattro deve essere selezionato. ae sotto "Set di caratteri" devo selezionare "Set di caratteri Unicode" o "Nessun set" – krishna555

+0

"Supporto di Common Language Runtime (/ clr)" - questo consentirà la combinazione di codice nativo e gestito in un unico assembly. –

+0

Il set di caratteri è per lo più irrilevante –

Problemi correlati