Перейти к содержанию

Рекомендуемые сообщения

Добрый день! Столкнулся с проблемой позднего связывания, а именно: открываю шаблон DWT при помощи команды:

i:=ShellExecute(0, nil, PChar(shablon_name), nil, nil, 1);

соответсвенно происходит запуск приложения nanoCAD, далее ожидаю загрузки и выполняю подключение поздним связыванием:

nanocad:= GetActiveOleObject('nanoCAD.Application');

Принципиально не использую

GetActiveOleObject('nanoCad.Application').QueryInterface(InanoCADApplication, nanoCadApp)

т.к.

1. начинаются комфликты команд delphi с командами из nano_TLB

2. не хочу иметь привязку к конкретной версии

 

при использовании вышеуказанного метода все работает отлично, однако если при запуске моей программы nanoCAD уже запущен, то шаблон открывается, а подключение методом

nanocad:= GetActiveOleObject('nanoCAD.Application')

не происходит, типа объекта нет.

 

Пробовал "nanoCAD.Application" менять на "nanoCAD.Application.3.5" - без изменений

 

в AutoCad все работает, у кого есть какие нибудь мысли?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не можем повторить проблему, следующий код работает как положено:

 

int _tmain(int argc, _TCHAR* argv[])
{
 ShellExecute(0, 0, L"TestDrawing.dwg", 0, 0, 1);
 printf("Press Enter...");
 getchar();

 CoInit _init;
 CLSID clsidApp;
 HRESULT hr;
 hr = CLSIDFromProgID(L"nanoCAD.Application" , &clsidApp);
 CComPtr<IUnknown> unkApp;
 hr = GetActiveObject(clsidApp, 0, &unkApp);
 if (SUCCEEDED(hr)) {
CComDispatchDriver dispApp(unkApp);
CComVariant varCaption(L"Foo");
dispApp.PutPropertyByName(L"Caption", &varCaption);
 }
 return 0;
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здраствуйте!

Кто-нибудь, выложите пожалуйста рабочее подключение к NanoCad 3.5 на Delphi.

Перепробовал все примеры подключения к NanoCad из соседних веток, подключиться к уже запущенному НУ НИКАК не получается, работает только запуск нового.

Подскажите, может не так всё просто для версии 3.5??

Может вариант пользователя ISL на Delphi проканает?

Помогите начать, а то руки опускаются!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здраствуйте!

Кто-нибудь, выложите пожалуйста рабочее подключение к NanoCad 3.5 на Delphi.

Перепробовал все примеры подключения к NanoCad из соседних веток, подключиться к уже запущенному НУ НИКАК не получается, работает только запуск нового.

Подскажите, может не так всё просто для версии 3.5??

Может вариант пользователя ISL на Delphi проканает?

Помогите начать, а то руки опускаются!

 

Так помню както очень просто было. Не знаю актуально ли Вам еще? Могу поднять свои залежи Delphi посмотреть как сделать библиотеку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здраствуйте!

Кто-нибудь, выложите пожалуйста рабочее подключение к NanoCad 3.5 на Delphi.

Перепробовал все примеры подключения к NanoCad из соседних веток, подключиться к уже запущенному НУ НИКАК не получается, работает только запуск нового.

Подскажите, может не так всё просто для версии 3.5??

Может вариант пользователя ISL на Delphi проканает?

Помогите начать, а то руки опускаются!

 

Итак: В Delphi говорим Import Type Library (например в меню Project), там говорим Add и указываем библиотеку ncauto.dll. Там же можно сказать Install и сгененируется компонента на панели ActiveX. Ставим ее на форму. И говорим ей Connect. - После этого или поднимается новый инстанс nanoCAD или подключается к уже существующему.

 

Тоже самое говорим для OdaX. Открываем ее точно также как ncauto. Только говорим потом не Install, а Create Unit. - будет сгененирована паскалевская обертка для OdaX.

 

Кстати полезная информация еще есть здесь: http://forum.nanocad.ru/index.php?showtopic=3182&view=findpost&p=7052

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Автору скорее помог бы более простой вариант.

 

nanocad:= GetActiveOleObject('nanoCAD.Application');

Не раз уже была проблема, потому что как то хитро программа ставится. Переустановка nanoCAD помогает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...

×
×
  • Создать...