Как создать DCOM C# и vb6 DLL, которые можно использовать в качестве распределенных с другого компьютера
Я пытаюсь создать DCOM dll в c#, который я хочу использовать или вызвать функцию с другого компьютера, используя приложение c# и vb6
То же самое я хочу создать приложение с помощью VB6 и хочу вызвать приложение .net с другого, а также с того же компьютера.
Что я уже пробовал:
Я хочу создать образец приложения с помощью .NET, а также в VB6, и я хочу использовать эти DLL приложения с другого компьютера, я прошел через несколько шагов, но это сбивает с толку и до сих пор не могу найти точный рабочий пример.
Я создал один пример проекта библиотеки классов и подписал его ключом, импортированным следующей командой:
sn.exe -i C:\Test\D\test.snk testD
а на пост-сборке я импортирую файл tlb из следующей команды:
%SystemRoot%\Microsoft.NET\Framework64\v4.0.30319\RegAsm /codebase "$(TargetPath)" /tlb:"$(TargetDir)$(TargetName).lib"
Теперь я могу успешно построить проект после обновления кода в AssemblyInfo.cs следующим образом:
[assembly: ApplicationName("D")] // name space name [assembly: ApplicationActivation(ActivationOption.Library)] [assembly: AssemblyKeyFile("test.snk")] // exported key name.
Теперь у меня есть два файла, один dll и один lib-файл в папке bin, когда я строю проект.
Лук я не знаю, что делать. Как я могу получить доступ с другого компьютера и как я могу создать то же самое для VB6.
Структура моего проекта выглядит следующим образом
структура проекта
я хочу создать приложение, которое может быть установлено на разных компьютерах и может общаться друг с другом по сети
может ли кто-нибудь помочь мне с шагами, как я могу создать приложение, а также как я могу создать настройку для того же самого ?
я загрузил исходный код , я могу создать устанавливаемый конфиг, но не могу позвонить с другого компьютера
и это ниже моего клиентского кода со ссылкой
https://www.c-sharpcorner.com/uploadfile/yougerthen/create-dcom-application-from-within-net-environment-part-v/
RemoteSessionContextType тип = тип.GetTypeFromProgID("D. Person", "100.10.51.57", true);
var dcomObject = активатор.CreateInstance(remotesessioncontextype);
версия строки = dcomObject.Метод toString();
Приставка.WriteLine(версия);
я получаю ошибку, как показано ниже.
etrieving фабрика класса COM для компонента с CLSID {000209FF-0000-0000-C000-000000000046} не удалось из-за следующей ошибки: 80070005 Доступ запрещен. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED)).
F-ES Sitecore
Вы должны реализовать COM, Если хотите, чтобы он использовался VB6. Google how to create a COM object in c#, и вы найдете множество пошаговых инструкций по всем шагам.
Viken Patel
да , но я хочу создать dll, которая может быть вызвана с другой машины, и я ищу это решение, если я создаю dll в компьютере A с помощью приложения vb6 или c#, которое может быть вызвано с компьютера B.
F-ES Sitecore
Если вы создадите его как COM-объект, вы можете зарегистрировать его как DCOM-объект на клиентской машине, что позволит создать объект на другом компьютере.