Если ошибся разделом форума, перенесите, пожалуйста.
Вводная:Приложение MFC Win32. В окне создается контрол от DWG TrueView, в нем отображается чертеж. 
Проблема:На одном компьютере (Win 7 x64, установлены DWG TrueView 2012,2014,2016) все работает, контрол создается, файл отображается.
На другом (Win 7 x64, установлены DWG TrueView 2014,2016;  ранее были установлены 2010,2012,2013, но сейчас деинсталлированы) контрол создается, но выполнение PutSourcePath выбрасывает исключение без описания (т.е. e->GetErrorMessage возвращает пустую строку)
Детали:Контрол создаем динамически - смотрим в реестре
 HKEY_CLASSES_ROOT\Autodesk.AcCtrl
 HKEY_CLASSES_ROOT\Autodesk.DwgViewrAcCtrl
 HKEY_CLASSES_ROOT\Autodesk.dwgviewrCtrl.1
 HKEY_CLASSES_ROOT\Autodesk.DWGVCtrl.1
Выясняем, какой из разделов есть на данной машине. Если есть - читаем его CLSID (опытным путем выяснили, что это либо  {4E871D32-203E-4777-B42A-451FC1B2FC90}, либо {6C7DC044-FB1E-4140-9223-052E5ABE7D24}) и создаем:
- m_pCtrl=new CDwgViewrCtrl; 
- m_pCtrl->m_CLSID = clsid; // = { 0x6C7DC044, 0xFB1E, 0x4140, { 0x92, 0x23, 0x5, 0x2E, 0x5A, 0xBE, 0x7D, 0x24 } }; 
- if( !m_pCtrl->Create(_T("DWGTV"), WS_VISIBLE|WS_BORDER|WS_CHILD, rect, this, IDC_MYPREVIEW) ) 
- { 
-         delete m_pCtrl; 
-         m_pCtrl=NULL; 
- } 
-   
Загружаем файл чертежа
- try 
- { 
-         if(m_pCtrl)  
-                 m_pCtrl->PutSourcePath(sDwg);  
- } 
- catch (CException* e) 
- { 
-         TCHAR buf[1024]; 
-         e->GetErrorMessage(buf, 1024);   
-         e->Delete(); 
-         str.Format(_T("Ошибка при загрузке файла\n '%s'\nСообщение: '%s'"), sDwg, buf); 
-         MessageBox(str, _T("Упс...")); 
- } 
-   
И, соответственно, класс контрола
-   
- class CDwgViewrCtrl : public CWnd 
- { 
- protected: 
-         DECLARE_DYNCREATE(CDwgViewrCtrl) 
- public: 
-         CLSID m_CLSID;  
-         virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, 
-                 const RECT& rect, CWnd* pParentWnd, UINT nID,  
-                 CCreateContext* pContext = NULL) 
-         {  
-                 return CreateControl(m_CLSID, lpszWindowName, dwStyle, rect, pParentWnd, nID);  
-         } 
-   
-         BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd,  
-                 UINT nID, CFile* pPersist = NULL, BOOL bStorage = FALSE, 
-                 BSTR bstrLicKey = NULL) 
-         {  
-                 return CreateControl(m_CLSID, lpszWindowName, dwStyle, rect, pParentWnd, nID, 
-                         pPersist, bStorage, bstrLicKey);  
-         } 
-   
-         long PutSourcePath(LPCTSTR strPathname) 
-         { 
-                 long result; 
-                 static BYTE parms[] = VTS_BSTR ; 
-                 InvokeHelper(0x2, DISPATCH_METHOD, VT_I4, (void*)&result, parms, strPathname); 
-                 return result; 
-         } 
-   
- }; 
-