2009-05-19 9 views
7

Recibo el error de compilación D8045. no se puede compilar el archivo C 'serialcommands.c' con la opción/clr.D8045: no se puede compilar el archivo C 'serialcommands.c' con la opción/clr

Este archivo es una biblioteca C que se ha escrito para hablar a través de un puerto serie a un procesador TI. La tarea que tengo que hacer es envolver esta biblioteca con un contenedor CLR (habrá preguntas adicionales publicadas en stackoverflow relacionadas con la recopilación de datos hacia adelante y hacia atrás si quieres más puntos fáciles de las preguntas de la CLI)

Solo quiero use esta biblioteca C desde mi contenedor CLR. Fui a Propiedades-> Propiedades de configuración-> C/C++ -> General-> Compilar con Common Language Runtime support = No Common Language Runtime support

¿Es esta la forma correcta de hacerlo? ¿Experimentaré extraños errores más tarde o hay otras cosas que debo hacer para usar esto?

+0

como seguimiento, ahora estoy a un año de usar esta solución y nunca he tenido ningún problema como resultado del uso de esta solución. Sin "extrañeza" como yo temía. – MedicineMan

Respuesta

10

Sí. Debe compilar cualquier objeto C sin/CLR, ya que el clr solo comprende clases y objetos.

Puede seguir utilizándolos desde su proyecto C++/CLI, envuelto dentro de sus objetos "clase de referencia". Esta es una forma normal de envolver una C api en objetos .NET.

+2

Nota: Esto se puede hacer "por archivo" no solo por proyecto, no estoy seguro de que estuviera claro desde la pregunta/respuesta aquí en la primera lectura. –

+0

Esto podría ayudar a alguien más en el futuro. Agregué un nuevo archivo .c a un proyecto existente con archivos C++/CLI y C, y tuve este error. En ese caso, parece que debe cambiar la configuración de los nuevos archivos agregados o retomarán la configuración del proyecto. Me llevó un poco descubrir por qué estaba viendo este problema solo con un nuevo archivo. La configuración está bajo C++/General. – shawn1874

Cuestiones relacionadas