Создание доступного COM DLL

Мне записали библиотеку классов в .NET, который я хотел бы сделать доступным для VB6/VBA. То, что я попробовал, не работало (очевидно, поскольку я задаю этот вопрос). Вот то, что я сделал:

  1. Я Создал Проект Библиотеки классов в Экспрессе Visual Studio 2010 года и поместил код в Модуль Класса.
  2. Я открыл свойства проекта и перешел к "информации о блоке" и проверил, "Делают COM Видимый".
  3. Я перешел к опциям "Advanced Compile" и был нацелен на.Net 2.0 (это - очень простой код).
  4. Я затем удалил все ссылки, ожидают для "Системы".
  5. Я разработал проект (никакие предупреждения или ошибки) и скопировал DLL из папки Bin в C:\Windows\System32\
  6. Я выполнил RegSvr32 для регистрации DLL и получил ошибку:

Модуль "MyDll.dll" был загружен, но точка входа DLLRegisterServer не была найдена.

Удостоверьтесь, что "MyDll.dll является допустимый DLL или файл OCX, и затем попробуйте еще раз.

Очевидно моя первая попытка была немного наивна. Кто-то мог предложить руководство?

7
задан Oorang 27 July 2010 в 18:20
поделиться

3 ответа

Шаг #6 неверен. Сборки .NET с типами [ComVisible] регистрируются в Regasm.exe. Используйте параметр командной строки /codebase, если вы не хотите устанавливать DLL в GAC. Опция командной строки /tlb создает библиотеку типов, вы можете использовать ее в своем проекте VB6.

10
ответ дан 6 December 2019 в 19:31
поделиться

Я абсолютно уверен, что RegSvr32 работает только с DLL не .NET. Сборки .NET хранятся в глобальном кэше сборок (GAC). Вам нужно запустить gacutil.exe.

0
ответ дан 6 December 2019 в 19:31
поделиться

Вам нужно будет определить GUID для ваших интерфейсов и отметить, какие классы реализуют какие интерфейсы, чтобы начать. В MSDN есть руководство по началу работы . Вам не нужно запускать RegSvr32, но вам нужно поместить DLL где-нибудь , где приложение может ее найти :

После регистрации сборки с помощью Regasm.exe вы можете установить ее в глобальном кэш сборки, чтобы его можно было активировать с любого COM-клиента. Если сборка будет активирована только одним приложением, вы можете поместить ее в каталог этого приложения.

Здесь также есть хороший обзор всего процесса .

3
ответ дан 6 December 2019 в 19:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: