2010-12-28 15 views
5

Estoy tratando de establecer comunicación entre Centura y una DLL COM. (Descargado de http://download.resip.fr para una importación de base de datos)Tlbexp.exe en un DLL COM

Centura requiere un archivo .tlb para poder comunicarse con este componente. Normalmente usaría regasm /tlb para generar el .tlb pero viendo que es un .dll COM esto no es posible.

me di cuenta que podía utilizar TlbExp para .NET DLL: http://msdn.microsoft.com/en-us/library/hfzzah2c(v=vs.80).aspx

yo probamos este, sabiendo que probablemente fallará (como tengo COM .dll). He recibido este error:

TlbExp : error TX0000 : Could not load file or assembly 'file:///C:\Windows\system32\ResipBcb.dll' or one of its dependencies. The module was expected to contain an assembly manifest.

El uso de Dependency Walker me di cuenta de dos .dll que faltan. Encontré ieshims.dll en línea pero no puedo encontrar el wer.dll. Ver this question.
No sé si el error tlbexp tiene algo que ver con este archivo que falta?

En resumen, mi pregunta es: ¿Cómo consigo un .tlb de este .dll? Parece que no puedo encontrar ninguna forma de extraer .tlb de este COM .dll.

Saludos
Clint Cambier

Respuesta

2

TblExp y Regasm son válidas únicamente sobre ensamblados .NET, lo que tienes es más probable un no .NET COM DLL estándar. Entonces ninguno de esos dos comandos son válidos en esta DLL.

objetos COM estándar se registran usando regsvr32. Intente ejecutar eso contra su DLL y vea si se registra correctamente. Si lo hace, debería verlo listado en el explorador ActiveX de Centura.

+0

Me di cuenta después de que TlbExp solo funcionaba en ensamblados .NET. El TlbImp funciona en COM .dll. Lo cual causó la confusión para mí. Regsvr32 no funcionará, esto lo sé. Voy a probar la sugerencia de Hans Passant. – Starceaker

+0

Ya no pude editar mi comentario, quise decir que ya probé regsvr32 y no funcionó. Lo intentaré de nuevo, no duele intentarlo. – Starceaker

9

Lo que estamos tratando de hacer sólo funciona para ensamblados .NET, no servidores COM nativos. La biblioteca de tipos para ellos casi siempre está integrada dentro de la DLL. En Visual Studio, use Archivo + Abrir + Archivo y seleccione la DLL. Abra el nodo "TYPELIB", haga clic con el botón derecho en el recurso (generalmente 1), Exportar. Guárdelo en, digamos, un directorio de proyecto, use la extensión de nombre de archivo .tlb.

Cuestiones relacionadas