2010-04-05 36 views

Respuesta

8

Lo sentimos, pero no hay una manera directa de hacerlo. Un archivo DLL es un archivo de formato ejecutable completamente vinculado, donde una biblioteca estática es una colección de archivos de objetos separados recopilados juntos. Con un poco de trabajo, puede convertir una biblioteca estática en una DLL, pero hacer lo contrario no es trivial (por decirlo suavemente).

+1

+1 para la única respuesta correcta a la pregunta original del OP. (Mi respuesta es solo una solución) –

+0

te refieres a una respuesta incorrecta ... – chacham15

+0

@chacham: He descargado y probado dlltolib. Al menos en base a mi prueba, diría que la respuesta que di se mantiene correcta. Supongo que dlltolib puede funcionar para algunos archivos DLL en algunas circunstancias, pero ciertamente * no * parece estar cerca de ser perfecto o universal. –

4

Como dijo Jerry, no puedes hacerlo directamente. Sin embargo, puede empaquetar su programa en algo así como un archivo RAR autoextraíble que incluye la DLL como parte del EXE único, que automáticamente extrae el EXE y los archivos DLL asociados a una carpeta temporal e inicia el programa principal.

+1

@Billy: +1 una solución, pero útil. –

1

False, es posible hacer esto. Por ejemplo, hay una herramienta llamada dlltolib que puede hacerlo.

+0

Probablemente se refiera a esto: https://github.com/peterdn/dll2lib, ¿verdad? No está claro si eso no solo crea la lib de importación para el DLL en lugar de una biblioteca estática lo que el OP está pidiendo. Del código concluyo que no es la lib estática. –

+0

De hecho, indica claramente en la descripción que solo crea una biblioteca de importación: "Una aplicación de línea de comandos .NET que produce una biblioteca de importación (.lib) desde una biblioteca de enlace dinámico de destino (.dll)". – Joe

+0

@Joe ¿por qué asumes que ese es el software del que estaba hablando y downvote? Una búsqueda rápida en Google le habría mostrado http://www.binary-soft.com/dll2lib/dll2lib.htm que indica en la primera línea "Convertir el archivo DLL en su biblioteca estática equivalente". – chacham15

2

En Windows, puede obtener el archivo lib para ejecutar su programa si tiene el archivo def correspondiente. Puede usar la ventana del símbolo del sistema de Visual Studio para obtener el archivo lib. La línea de comando es la siguiente: lib /def:XXX.def/máquina: x64 (o x86 para obtener lib 32bit) /out:XXX.lib. Debe asegurarse de que el archivo def y el archivo dll estén en la misma carpeta y que haya cambiado el directorio a la carpeta.

Cuestiones relacionadas