Показать сообщение отдельно
Старый 25.08.2015, 21:28    | »»» |  #317
orrollo
Начинающий
 
Аватар для orrollo
 
Киров
Регистрация: 24.08.2015
Сообщений: 2
orrollo is on a distinguished road
По умолчанию

Сообщение от Igor' Посмотреть сообщение
Сообщение от orrollo Посмотреть сообщение
Подскажите, пожалуйста, возможно ли использовать приложение как com-объект в .net?

Попытка подключить .tlb файл через references проекта вызывает сообщение "Type library 'AutoGRAPHShell' was exported from a CLR assembly and cannot be re-imported as a CLR assembly", что логично, учитывая среду разработки.

При этом попытка указать как reference один из exe-файлов проходит успешно, но программа падает при попытке загрузки этого файла с сообщением что файл не найден или отсутствует один из компонентов, какой из них - не указывает.

Каталог компиляции пробной программы в свойствах проекта указан в каталог автограф, рабочий каталог при запуске выставляется в него же.

Есть ли возможность показать пример, как именно подключаться к системе из .net?
Если Вы хотите в своей программе получать данные из AutoGRAPH 5 (.NET) по OLE, Вам не нужно подключать его в references и ссылаться на его каталог. Необходимо получить COM-объект, зарегистрированный в реестре, и, используя его, выполнять запросы к COM-серверу, которым является AutoGRAPH 5.

Пример на C#, выводит версию программы:

dynamic comObject = null;

try
{
var comType = Type.GetTypeFromProgID("AutoGRAPHAutomation");
if (comType != null) comObject = Activator.CreateInstance(comType);
}
catch (Exception ex)
{
throw new Exception(ex.Message + ex.InnerException);
}

if (comObject == null)
throw new Exception("AutoGRAPH does not register");

comObject.WaitForInitializing();
MessageBox.Show(comObject.CurrentVersion);

Добавлено через 4 минуты
Описание запросов к COM-серверу AutoGRAPH здесь: http://www.tk-chel.ru/download/AutoGRAPH_OLE.zip
к сожалению, код приведенный вами полностью неработоспособен - не компилируется - в части

comObject.WaitForInitializing();
MessageBox.Show(comObject.CurrentVersion);

возможно ли увидеть рабочий вариант?

Добавлено через 3 минуты
прошу прощения, смог собрать и запустить, не хватало библиотек.
orrollo вне форума   Ответить с цитированием