2013-07-25 12 views
5

Ho un file di intestazione e un file .lib creato utilizzando C++.Utilizzo di un file .lib in un programma C#

Ora voglio usarlo in un programma C#. È possibile?

+0

possibile duplicato di [Come usare \ * lib. file nell'applicazione C#?] (http://stackoverflow.com/questions/2848193/how-to-use-lib-file-in-c-sharp-application) – tafa

risposta

0

Non c'è un linker tradizionale che consente di importare la libreria. La soluzione migliore è compilare una libreria COM e utilizzare l'interoperabilità per utilizzarla.

0

Non direttamente. È possibile interagire con DLL non gestite tramite P/Invoke o assembly in modalità mista utilizzando C++/CLI. In entrambi i casi, dovrai creare un progetto wrapper o ricompilare il .lib originale (se hai i sorgenti) in DLL.

1

Non so su un file lib. Ma so che se si compila il codice come una DLL si può consumarlo come codice non gestito.

Per fare questo è necessario fare riferimento

System.Runtime.InteropServices 

e sarà necessario definire il metodo che si desidera utilizzare e dargli l'attributo DllImport. Qualcosa di simile a questo:

[DllImport("MyCPPDll.dll")] 
public void SomeMethod(int someParameter); 

Qui ci sono alcuni link che dovrebbero aiutare a punto nella giusta direzione:

http://msdn.microsoft.com/en-us/library/26thfadc(v=vs.100).aspx

http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.dllimportattribute(v=vs.100).aspx