Как программы используют нестатические библиотеки классов? - PullRequest
0 голосов
/ 12 января 2019

У меня есть приложение для Windows, которое отправляет строковые и плавающие данные в класс через открытое свойство. Эта же сборка DLL загружается в Maxscript (3dsmax) во время работы приложения Windows. Я ожидаю, что если я попытаюсь получить доступ к свойству класса, я получу в обоих приложениях одинаковые данные, но это не так. По-видимому, данные передаются в и из экземпляра класса во время выполнения, но когда к Maxscript обращаются к тем же данным, данные не определены.

Приложение Windows создает экземпляр класса. Maxscript «загружает сборку» как dotNetObject. Являются ли данные, отправляемые / получаемые приложением Windows, только в локальном экземпляре, а не в самом файле myClass.dll? Я знаю, что можно взаимодействовать с приложением C # с 3dsmax через Maxscript во время выполнения. Кто-нибудь, помогите объяснить, что здесь может быть не так?

1 Ответ

0 голосов
/ 28 января 2019

Windows Communication Foundation, также называемый WCF, является отличным API для использования. Я успешно использовал его, когда работал на AutoDesk на 3dsmax. Я использовал его для отправки команд maxscript в приложение (т. Е. 3dsmax) для тестирования автоматизации.

И последнее, но не менее важное: приведенный выше комментарий от «TheGeneral» совершенно верен.

Если вы хотите более «родной» способ обмена данными между процессами, то я бы предложил использовать карты памяти. https://docs.microsoft.com/en-us/windows/desktop/memory/file-mapping

...