Estoy escribiendo un contenedor C# para una biblioteca nativa de terceros, que tenemos como una DLL. Me gustaría poder distribuir una sola DLL para el nuevo ensamblado. ¿Puedo insertar el DLL win32 en mi DLL .NET y aún puedo hacer llamadas usando P/Invoke? ¿Si es así, cómo?¿Puedo incrustar una DLL win32 en un ensamblado .NET y hacer llamadas con P/Invoke?
5
A
Respuesta
2
Nunca lo he hecho, pero sé de un proyecto de código abierto que hace esto. Incrustan el código SQLite3 nativo en el ensamblado SQLite administrado usando su propia herramienta llamada mergebin.
Ve y mira la fuente SQLite project for .NET by PHX y podrás ver cómo se hace.
1
No creo que pueda hacerlo directamente, pero es posible extraerlo en tiempo de ejecución a alguna ubicación temporal y hacer una llamada a esa copia.
2
Debería funcionar, si el dll nativo no tiene ninguna dependencia.
Puede compilar el dll como recurso incrustado, luego de acceder a la transmisión desde el interior de su código, serializarlo en la carpeta temporal y usarlo desde allí.
Demasiado para publicar código de ejemplo aquí, pero el camino no es complicado.
Cuestiones relacionadas
- 1. ¿Puedo usar una DLL .NET en "Delphi 2007 for Win32"?
- 2. ¿Cómo incrustar un archivo de texto en un ensamblado .NET?
- 3. Cómo llamar a una DLL .NET desde un proceso Win32?
- 4. ¿Puedo incrustar otros archivos en una DLL?
- 5. Incrustar bibliotecas C++ en .Net Libraries
- 6. Incrustar dll no administrado en un C# dll administrado
- 7. Incrustar pdb en el ensamblado
- 8. Importar una DLL con C++ (Win32)
- 9. Diferencia entre ensamblado y DLL
- 10. ¿Cómo usar DLL de ensamblado .NET precompilado en Mono?
- 11. ¿Cómo combino un dll no administrado y un ensamblado administrado en un archivo?
- 12. ¿Es posible ejecutar un ensamblado .NET (dll) desde vbscript?
- 13. Incrustar archivos DLL en un ejecutable compilado
- 14. ¿Cómo puedo detectar el tipo de un dll? (COM, .NET, WIN32)
- 15. ¿Cómo usar el ensamblado .Net de Win32 sin registro?
- 16. Analizando archivo Win32 PE simple (Exe/DLL) en .NET
- 17. ¿Cómo puedo depurar un ensamblado C# COM cuando se llama desde una aplicación nativa win32?
- 18. Creación de perfiles de un pinvoke dinámico
- 19. Exportación de una función C nativa desde una DLL .net?
- 20. ¿Resolviendo una referencia de ensamblado .NET a un nombre diferente?
- 21. Llamadas de API de Mocking y Win32
- 22. Descargue forzosamente DLL del ensamblado
- 23. ¿Cómo puedo incrustar un formulario de C++ no administrado en una aplicación .NET?
- 24. Diferencia entre las dependencias del proyecto y DLL en .Net en el ensamblado compilado última
- 25. Cómo descompilar un exe o un dll en el ensamblado
- 26. ¿Cómo incrustar WebKit en mi aplicación C/C++/Win32?
- 27. ¿Hay alguna manera de empaquetar más de un ensamblado .NET en un dll?
- 28. ¿Incrustar un servidor web liviano en una aplicación .net (node.js)?
- 29. Hacer referencia al ensamblado .NET en VB6 no funcionará
- 30. Inicialización de COM y uso en Win32 C++ DLL