Если ошибся разделом форума, перенесите, пожалуйста.
Вводная:Приложение 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;
        }
 
};