c++启动AutoCAD有会的进来看看。
HRESULT hr = S_OK;
IUnknown *lpUnk = NULL;
CLSID clsid;
::CoInitialize(NULL);
//这里的版本号看你安装的AutoCAD是哪个版本,具体路径你可以查看一下C:\Program Files\Common Files\Autodesk Shared这里面的文件.tlb前面的数字来进行填写
//比如我的是:acax19deu.tlb 所以我这里就写成了AutoCAD.Application.19
hr = ::CLSIDFromProgID(L"AutoCAD.Application.19", &clsid);
if (FAILED(hr))//加载是不是成功
return -1;
hr = ::GetActiveObject( clsid, NULL, &lpUnk);
if (FAILED(hr)){
if (IDNO == ::MessageBox( NULL, _T("启动AutoCAD?"), _T("提示信息"), MB_YESNO))
return -2;
hr = ::CoCreateInstance(clsid, NULL, CLSCTX_LOCAL_SERVER, IID_IUnknown, (void**)&lpUnk);
if (FAILED(hr))
return -3;
}
hr = lpUnk ->QueryInterface( __uuidof(IAcadApplication), (void**)&m_lpApp);
if (FAILED(hr))
return -4;
lpUnk ->Release();
m_lpApp ->Visible = TRUE;
oDoc=m_lpApp->GetActiveDocument();
if (oDoc)
{
CString str;
str.Format(_T("你当前的文档是在%d"),oDoc);
AfxMessageBox(str);
//oDoc->Open(_T("D:\\aa.dwg"),COleVariant(_T("")));
//oDoc->Import(_T("D:\\aa.dwg"),COleVariant(_T("")),10.2);
return S_OK;
}
else
{
return S_FALSE;
}
为什么我在找开.dwg文件时总给我报这个错误呢?
CAD.exe 中的 0x00811761 处未处理的异常: 0xC0000005: 读取位置 0x0057016c 时发生访问冲突
实在是不解,不知道哪里出错误了,用跟踪的方法试了,是打开这个函数这里出错了。又找不开具体的错误。