Mam aplikację VB6, która używa biblioteki DLL COM. DLL jest napisany w języku C#. We właściwościach projektu C# mam zaznaczoną opcję "Register for COM interop". Aplikacja VB6 działa dobrze na mojej maszynie programistycznej. Kod C# Wynika z tego formatu dokładnie: CodeProject C# COM ExampleJak zarejestrować DLL DLL napisane w języku C# z Regsvr32?
Podczas wdrażania do innych maszyn Regsvr32.exe daje mi następujący błąd, gdy próbuję zarejestrować DLL:
The module "MyCOM.dll" was loaded but the entry-point DLLRegisterServer was not found.
Co to oznacza? Żadne samouczki/dokumentacja, którą czytałem o bibliotekach DLL COM nie mówią nic o "entry-point DLLRegisterServer".
Mieliśmy poważne problemy z używaniem RegAsm.exe na różnych komputerach, więc naprawdę potrzebujemy rozwiązania, w którym można uruchomić regsvr32.exe zamiast tego, które będzie działać dla każdej maszyny, na której się wdrażamy (tj. XP, Vista, Windows 7, maszyny x86, maszyny x64 itd.)
Co muszę dodać do mojego kodu C#, aby można było zarejestrować się w regsvr32.exe?
@Hans - 2 pytania: Jakie są 2 wersje dla maszyn 64-bitowych? Czy istnieje sposób na tworzenie, wdrażanie i używanie biblioteki DLL COM w VB6 bez jej rejestracji? –
Wersja 32-bitowa i 64-bitowa. Zasadniczo tak, z manifestem COM wolnym od rejestru w aplikacji klienckiej. Wymaga ''. –
@Mike Webb: Podczas wykonywania współdziałania COM z VB6 musisz: 1. skompilować projekt C# z celem x86 i 2. użyć regresji pod c: \ windows \ syswow64. –