[VS2010, Win7, 64-Bit] AxImp en TlbImp maken 32-Bit dlls

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Eind vorig jaar heb ik dit ook al eens geprobeerd, toen met VS2008 en XP 64-Bit (zie Vorig Topic).
Het is me toen niet gelukt om 64-Bit Interop dlls te genereren.

Inmiddels heb ik een laptop met Win7 en VS2010Pro en probeer ik het weer.
De C++ ActiveX control compileert prima. En volgens Dependancy Walker zijn alle referenties OK en is alles x64.

Als ik een nieuwe WinForms solution start en een reference leg naar de ocx, dan wordt de Interop dll gemaakt.
Als ik die bekijk in Dependancy Walker zijn alle referenties OK en is alles x64.
Ik heb ook de axInterop dll nodig, zodat ik mijn C# applicatie ook voor 64-Bit kan compileren die deze ocx gebruikt.

Nu heb ik inmiddels begrepen dat VS2010 geen 64-Bit ondersteund en dat ik daarom de ocx niet als control op mijn form kan plaatsen. Door het plaatsen van de control wordt de axInterop dll gegenereerd.

Nu probeer ik deze axInterop dll handmatig te genereren via axImp of TlbImp:
code:
1
2
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\x64\TlbImp" MapWinGIS.ocx /machine:x64
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\x64\AxImp" MapWinGIS.ocx

TlbImp geeft als foutmelding
code:
1
TlbImp : error TI2010 : A single valid machine type compatible with the input type library must be specified.


En axImp genereerd wel interop dlls, maar als ik die dan open in Dependancy Walker zijn ze 32-Bit 8)7
Ook de interop dll die VS wel als 64-Bit had gegenereerd.

Ik ben dus net zo ver al vorig jaar ;(

Weet iemand het commando dat VS gebruikt om de interop dll te genereren, want het is duidelijk niet die ik gebruik?