Мне записали библиотеку классов в .NET, который я хотел бы сделать доступным для VB6/VBA. То, что я попробовал, не работало (очевидно, поскольку я задаю этот вопрос). Вот то, что я сделал:
Модуль "MyDll.dll" был загружен, но точка входа DLLRegisterServer не была найдена.
Удостоверьтесь, что "MyDll.dll является допустимый DLL или файл OCX, и затем попробуйте еще раз.
Очевидно моя первая попытка была немного наивна. Кто-то мог предложить руководство?
Шаг #6 неверен. Сборки .NET с типами [ComVisible] регистрируются в Regasm.exe. Используйте параметр командной строки /codebase, если вы не хотите устанавливать DLL в GAC. Опция командной строки /tlb создает библиотеку типов, вы можете использовать ее в своем проекте VB6.
Я абсолютно уверен, что RegSvr32 работает только с DLL не .NET. Сборки .NET хранятся в глобальном кэше сборок (GAC). Вам нужно запустить gacutil.exe.
Вам нужно будет определить GUID для ваших интерфейсов и отметить, какие классы реализуют какие интерфейсы, чтобы начать. В MSDN есть руководство по началу работы . Вам не нужно запускать RegSvr32, но вам нужно поместить DLL где-нибудь , где приложение может ее найти :
После регистрации сборки с помощью Regasm.exe вы можете установить ее в глобальном кэш сборки, чтобы его можно было активировать с любого COM-клиента. Если сборка будет активирована только одним приложением, вы можете поместить ее в каталог этого приложения.
Здесь также есть хороший обзор всего процесса .