I have generated a 64-bit version of an old ActiveX component. I now need to create the appropriate interop dlls to be able to use this component from some managed code. Here's what I've tried:
> tlbimp myDll.ocx /out:myDllInterop.dll /machine:x64
This generates the error:
TlbImp : error TI0000 : A single valid machine type compatible with the input type library must be specified
From this error, it appears that I might not have a 64-bit activeX component. But when I check it using DependencyWalker
, it says it IS a 64-bit dll. Is it possible that the typelib info inside the ocx is only 32-bits. If so, how can I verify that? OleView doesn't give me enough info about the bit-ness of the tlb. And more importantly, how can I force a 64-bit typelib info to be embedded inside the ActiveX control?
I've also tried aximp, but it doesn't seem to have any option to specify a target machine type at all
Do I have to write my own tlbimp/aximp using the TypeLibConverter class? Can anyone point me in the right direction please?
View Complete Post