Finora ho capito che era necessario ricompilare la libreria come .dll
anziché .lib
, abilitare /clr
e /EHa
anziché /EHsc
. Ora ho una DLL gestita che ho aggiunto come riferimento nel mio progetto C#.Come utilizzare una libreria C++ in un'app C#?
Ora come si usa?
Sono pronto a scrivere alcuni wrapper, ma non so da dove cominciare o come "vedere" a quali funzioni ho avuto accesso. Ho letto un po 'su come i nomi delle classi e le funzioni potrebbero essere storpiati dal compilatore ... devo tornare indietro e aggiungere esportazioni __declspec
ovunque (se sì, come?), O c'è un'opzione in VS2010 che dice "non mangiarlo!"?
La libreria C++ in questione è ancora in fase di sviluppo attivo, quindi spero di poter modificare la libreria C++ il meno possibile e ricompilarla periodicamente con alcuni switch, quindi esporre la nuova funzionalità come ne ho bisogno .
Quindi ... per creare le classi gestite, devo farlo in C++/CLI, o cosa? Ho bisogno di un altro po 'per andare avanti. – mpen
sì avete bisogno di più per andare avanti, vorrei suggerire di verificare i collegamenti. Ci sono anche alcuni strumenti per convertire C++ in C++ gestito da Microsoft, questo può essere d'aiuto. Dai un'occhiata a questo: http://stackoverflow.com/questions/151776/are-there-any-tools-for-converting-managed-c-to-c-cli –