2016-04-05 2 views
0

У меня есть dll, сделанный на C#, который использует Bouncycastle и который, в свою очередь, предназначен для работы в Visual Basic 6 из 32 бит, поэтому он включил опцию «COM INTEROP». Я тестировал его на 32-битной Windows и работаю правильно.Как зарегистрировать DLL C# COM Interop BouncyCastle.dll, также используемый в Windows 64bit?

шаги я следовать, чтобы зарегистрировать в CMD линии являются:

1 шаг:

csc /target:module /reference:BouncyCaste.dll myDLLCOM.cs 

2 шаг:

sn -k sign.pfx 

3 шаг:

al /out:myDLLCOM.dll myDLLCOM.netmodule /keyfile:sign.pfx 

4 Шаг:

gacutil /i BouncyCastle.dll 

5 шаг:

regasm /codebase /tlb:myDLLCOM.tlb myDLLCOM.dll 

Моя проблема пытается зарегистрироваться в 64-битных Windows. Когда мое приложение VB6 в Win64 бит пытается создать объект дает мне «Ошибка 429 управления ActiveX не может создать объект

UPDATE:. Я пытался зарегистрировать с ЦМД, Regasm и все команды, расположенной в папке Syswow64 и ничего.

Кто знает, что может быть проблема?

Спасибо за ридми и извините за мой английский! ;-)

+0

В чем проблема? – SLaks

+0

Но что это за проблема? Вы получили сообщение об ошибке? Что он говорит? – SLaks

+0

Да, когда мое приложение VB6 пытается создать объект, я получаю сообщение «Ошибка 429 Элемент управления ActiveX не может создать объект» – Emily

ответ

0

может быть, вы еще один экземпляр, созданный для этого объекта. Если да, то вам нужно закрыть это первый.

+0

Привет @Gonzalo, спасибо за ваш ответ. Я не думаю, что есть другой экземпляр объекта, созданного, но не работает в win32. – Emily

+0

Нет ли другого приложения, использующего одну и ту же DLL «У меня была аналогичная проблема с Outlook.exe в 64-битных окнах. Мне пришлось закрыть Outlook, прежде чем я смогу создать объект в своем коде. – Gonzalo

+0

Нет, потому что эта DLL создана мной. Я не понимаю, почему не работает в win64. win32 отлично работает. – Emily