Я работаю на vb.net в Visual Studio 2017. Я довольно плохо знаком с Visual Basic.Я больше знаком с VBA.
Я создал прототип кода для доступа к Autodesk Vault 2019, загрузил файл и открыл его в Autodesk Inventor 2019. Этот код был создан с помощью шаблона Autodesk Inventor AddIn в Visual Studio.Код скомпилирован без ошибок и функционирует как задумано.
Конечное намерение этого приложения - скомпилировать код в DLL, а затем вызвать эту DLL (с аргументами) из VBA в другом программном обеспечении (CorelDraw).Для этого я понимаю, что мне нужно поместить код в шаблон библиотеки классов, чтобы правильно скомпилировать его в DLL.
При этом у меня возникает проблема со следующей строкойс кодом:
ActiveInvApp = Marshal.GetActiveObject("Inventor.Application")
«Маршал» из «System.Runtime.InteropServices», который импортируется в начале приложения со следующей строкой кода:
Imports System.Runtime.InteropServices
Проблема в том, что Visual Studio не распознает «GetActiveObject».Это подчеркивает это красной волнистой линией.При наведении курсора на него появляется подсказка: «GetActiveObject не является членом Marshal».
На момент написания этой статьи у меня открыты два экземпляра Visual Studio 2017.Один с версией этого кода для библиотеки классов, а другой с версией AddIn Autodesk Inventor.Версия AddIn не имеет проблем с этой строкой кода, а библиотека классов имеет.
В соответствии с некоторыми инструкциями по созданию библиотеки классов DLL, мой код начинается со следующего:
Namespace VaultCOMFunctions
Public Module StringLibrary
<Extension>
Public Sub OpenFromVault(PartNum As String)
'Code for opening the file goes here
Я не уверен, актуально это или нет.Как я уже сказал, я немного новичок в VB.net.
Я потратил много времени, возясь со ссылками, чтобы попытаться прояснить это, но безуспешно.Что может быть причиной этого?Я не могу найти ни одного существующего сообщения на форуме (здесь или в другом месте) с любой подобной проблемой.