Как выбрать какой автокад запустить на этапе исполнения? у меня всегда 2014 запускается, хотя я указал tlb от 2010-го.
А кто тебе сказал, что tlb хоть как-то определяет какая версия AutoCAD будет запущена? Даже то, что указано в моей статье по ссылке выше не гарантирует запуск указанной версии AutoCAD. Чтобы запускалась нужная версия через COM/ActiveX нужно править налету реестр, причем раздел, который недоступен обычным пользователям: HKEY_CLASSES_ROOT\AutoCAD.Application и/или HKEY_CLASSES_ROOT\AutoCAD.Application.XX.Y
Поэтому если необходим запуск и работа с конкретной версией AutoCAD, то необходимо:
1. Завершить все процессы acad.exe - как это делать решать тебе.
2. При помощи CreateProcess запускаешь нужный acad.exe
3. Немного подождать и через COM/ActiveX подключиться к запущенному acad.exe:
CLSID clsid ;
HRESULT hr = S_OK;
_com_util::CheckError(CLSIDFromProgID (L"AutoCAD.Application", &clsid));
IAcadApplicationPtr pApp;
// Я тут написал цикл, который может оказаться
// бесконечным если не удается подключится к AutoCAD
// так что продумай вариант выхода из этого цикла
while (FAILED(pApp.GetActiveObject(clsid)))
{
Sleep(1000);
}
// Теперь мы готовы работать с AutoCAD через COM/ActiveX