quiero usar dll hecho en C# (visual studio 2008) en C++ project (visual studio 2003). como hacer eso ? por favor heeelpusando C# dll en proyecto C++
Respuesta
No es más que un simple interoperabilidad COM, el MSDN FAQ también enumera los métodos menos conocidos:
2.2 Como llamar ensamblado de .NET de Visual C++ nativo?
Hay básicamente cuatro métodos de ensamblado de .NET llamada de VC++ nativo código. Microsoft All-In-One Code Framework tiene ejemplos de trabajo que demuestran los métodos. Módulo
nativo VC++ llama CLR Hosting APIs para alojar CLR, carga y llamada el ensamblado de .NET. (Todo-En-Uno Marco Código Código de ejemplo: CppHostCLR)
Si el ensamblado de .NET puede ser expuesto como un componente COM, módulo nativo VC++ puede llamar en el conjunto de .NET través de NET - COM interoperacion (Marco Code-En-Uno la Muestra : CppCOMClient)
inversa PInvoke: la gestión nativa llamada codificada pasar un delegado el código nativo puede volver a llamar. (Marco Código de ejemplo Código-En-Uno: CSPInvokeDll)
Si se permite que el módulo que contiene VC código nativo ++ para enable CLR, el VC++ nativo código puede llamar NET directamente a través de los “It simplemente funciona ", O" IJW ", mecanismo. (Marco Code-En-Uno la muestra: CppCLIWrapLib)
No se pueden usar directamente ensamblados .NET desde código C++ no administrado. Una posible solución es exponer el ensamblado como objeto COM utilizando la utilidad regasm.exe y luego consumirlo desde C++. Tenga en cuenta que los tipos de .NET que deben exponerse como objetos COM pueden necesitar ser decorados con el atributo [COMVisible(true)]
y aún requerirían el .NET framework instalado en la computadora de destino que ejecuta el código C++.
Hay muchas formas de hacerlo.
¿La DLL C# es una DLL COM? De ser así, puede usar la API/Especificación COM regular para acceder a ella en su programa C++. Hay muchos tutoriales sobre cómo hacer que su C# DLL COM sea visible. No es tan difícil, unos pocos switches de compilación y atributos de C# básicamente.
De lo contrario, ¿puede compilar su proyecto C++ utilizando el /clr interruptor del compilador? Si es así, puede usar el Using Directive para importar directamente su C# DLL.
Haga el archivo de biblioteca [.Tlb] y solo nosotros podremos usar el dll. Debe crear .TLB (archivo de biblioteca de tipos) de su C# DLL original y usar esa biblioteca .TLB en el código de VC++. Para eso, debe registrar el archivo .TLB en su PC, así como también es necesario importar ese archivo .TLB en su aplicación vC++. Cuando escriba C# DLL recuerde usar interfaces que se implementarían en la clase.
Como dijo Darin, una forma es a través de COM. Las otras dos formas (lo sé) son:
- Puede crear una DLL de modo mixto en C++. Esa DLL puede contener y llamar al código administrado, pero también puede exportar funciones no administradas, como una DLL normal de C++. Se puede incluir como cualquier otra DLL de C++
- Es mucho más difícil, pero también puede alojar el CLR. Google para "alojamiento CLR" para encontrar detalles sobre la API o muestras.
después de ajustar la "Resolver referencias # using" (Proyecto-> C/C++ -> General) opción del compilador al directorio que contiene el conjunto quieres, luego pones una línea como esta en tu código.
#using <NiftyAssembly.dll>
- 1. Usando C++ DLL en el proyecto C#
- 2. Cómo agregar dll en el proyecto C#
- 3. Compilar un proyecto C# en un dll
- 4. Usando .dll en Visual Studio 2010 C++
- 5. Agregar DLL de C++ a un proyecto de C#
- 6. Hacer una DLL de un proyecto C#?
- 7. C# update DLL sin recompilar el proyecto
- 8. Referencias DLL en Visual C++
- 9. dependencia de msvcr90.dll en el proyecto VS 2005 C++
- 10. clase de C++ DLL en C# Aplicación
- 11. Cómo minimizar un tamaño de DLL del proyecto ASP.NET C#?
- 12. Crear una DLL en C y vincularla desde un proyecto de C++
- 13. C#/C++ en la misma solución - DllImport no encuentra DLL
- 14. C# a C++/CLI a C DLL System.IO.FileNotFoundException
- 15. Incrustar dll no administrado en un C# dll administrado
- 16. Cómo usar C# Dll en vC++?
- 17. lanzamiento SAFEARRAY de C++ y C# DLL
- 18. Actualizar un dll de referencia en un proyecto C# sin volver a compilar el proyecto
- 19. C# callback from DLL
- 20. C++ enganchando un dll?
- 21. C# LPT inpout32.dll
- 22. Ingeniería inversa C++ DLL
- 23. C++ windows dll viewer
- 24. Inyección de C++ DLL
- 25. Proyecto Visual Studio 2010 C++ DLL - ¡Sin archivo DLL de salida!
- 26. ver los comentarios dll en C#
- 27. Llamada C# dll función de C++/CLI
- 28. DLL de llamada C desde C#
- 29. Dll Importe C++ a C# con matrices
- 30. Pase cadena de C# a C DLL
posible duplicado de (http://stackoverflow.com/questions/980808/how-to-use-c-dll-in-vc) –
posible duplicado [Cómo utilizar C# Dll en VC++ ??] de [¿Es posible usar una DLL creada usando C# en una aplicación VC++ no administrada?] (http://stackoverflow.com/questions/2873714/is-it-possible-to-use-a-dll-created-using- c-in-an-unmanaged-vc-application) –
@ 0xA3: Tengo curiosidad, ¿cómo facilitaría VC++ 2008 las cosas? El código compilado en VC 2003 puede incluir componentes COM, y puede incluir cualquier tipo de DLL contenedor nativo, incluso si está escrito en VC2008, ¿verdad? – Niki