c++启动AutoCAD有会的进来看看。

编程小白_大场 编程小白_大场 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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 时发生访问冲突


实在是不解,不知道哪里出错误了,用跟踪的方法试了,是打开这个函数这里出错了。又找不开具体的错误。
...全文
评论 5
收藏 已收藏
分享
返回顶部