modo semplice classe assumendo Foo:
- Creare un progetto C++/CLI, chiamano questa FooWrapper.
- Fare in modo che FooWrapper dipenda dalla dll non gestita (tuttavia normalmente lo si farebbe).
- Creare una classe gestita ManagedFoo che contiene un singolo campo di istanza privato di tipo Foo *.
- fornisce funzioni di wrapping pubblico in ManagedFoo che inoltrano al campo dell'istanza sottostante.
- Opzionalmente (ma consigliato):
- parametri convertire da idiomi NET (archi e simili) a idiomi C++ (std :: string o char *)
- intercettare le eccezioni non gestite e buttare quelle gestite invece
Poi fate il vostro codice C# dipendono dal FooWrapper progetto/dll e assicurarsi che il ll non gestito è correttamente distribuito con esso, come questo viene fatto dipende la dll non gestito, ma nella stessa directory è normalmente sufficiente .
Se le funzioni non si basano su istanze della classe poi è ancora più semplice P/Invoke
È una classe COM? –
Scusa avrei dovuto essere più specifico. Questa NON è una classe COM. È solo una semplice vecchia classe C++. – cjserio