2012-05-17 12 views
5

Estoy escribiendo un contenedor para mis métodos C++ nativos en C++/CLI que los expondrá a C#. Ahora estoy usando Visual Studio 2008. ¿Puede alguien decirme qué tipo de proyecto necesito crear para que mi contenedor quede expuesto a C#. Veo en Visual Studio 2008 hay diferentes tipos de proyectos en Visual C++ ---> CLR ---->¿Qué tipo de proyecto se debe crear para C++/CLI?

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

¿Cuál debo usar?

Respuesta

6

Debe crear el proyecto de tipo Biblioteca de clases. Lo más importante es especificar la opción "Common Language Runtime Support" (establecida en "Common Language Runtime Support (/ clr)") en Propiedades del proyecto -> Propiedades de configuración -> General

Esto le permitirá usar el

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

pragmas y el enlace con los archivos nativos .lib.

Ver este enlace para más detalles sutiles

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

Hay un retén (no se menciona en este artículo) de 64 bits se basa. El "Enlazador-> Entrada-> Forzar referencias de símbolos" debe establecerse en "_ DllMainCRTStartup" para 64 bits y en " _DllMainCRTStartup @ 12" para 32 bits.

+0

gracias por la respuesta rápida, bajo "Soporte de tiempo de ejecución de lenguaje común" en general se vea como cuatro opciones 1.) soporte de ejecución de lenguaje común (/ CLR) 2.)/CLR: pura 3.)/CLR: segura 4.)/clr: oldsyntax por lo que uno de estos cuatro debe seleccionarse. y en "Conjunto de caracteres" necesito seleccionar "Conjunto de caracteres Unicode" o "Sin establecer" – krishna555

+0

"Soporte de tiempo de ejecución de lenguaje común (/ clr)" - esto permitirá mezclar código nativo y administrado en un ensamblaje. –

+0

El conjunto de caracteres es en su mayoría irrelevante –

Cuestiones relacionadas