用VC++如何创建AutoCAD实例?
用VC++如何创建AutoCAD实例? 用OLE Automation,好像也不麻烦,晚上我写一个程序明天传上来。回复
谢谢zfbj.回复
可以了,查了些资料,并不太理解,因为知识面太窄!Setup.exe启动AutoCAD2005英文版
(自己做安装程序,试着玩: 创建copyfolder, shortcut, profile, ...)
刚完成一点儿.
参考[转载]: 用'添加类'->'MFC'->'类型库中的MFC类'导入AutoCAD的tlb类型库.
我还不确定"AutoCAD.Application"该怎么写,我只装了AutoCAD2005,同时有多个版本时,是不是应该写成"AutoCAD.Application.16.1"呢?
IAcadApplication AcadApp;<BR><BR>void getAcad()<BR>{<BR>// This function will find AutoCAD in the registry, and launch it (if it is<BR>not launched already).<BR>HRESULT hr=NOERROR;<BR>CLSID clsid;<BR>LPUNKNOWN pUnk=NULL;<BR>LPDISPATCH pDisp=NULL;<BR><BR>CoInitialize(NULL);<BR>hr=::CLSIDFromProgID(L"AutoCAD.Application", &clsid);<BR>if(SUCCEEDED(hr))<BR>{<BR>if(::GetActiveObject(clsid,NULL,&pUnk)==S_OK)<BR>{<BR>// Already opened Acad Session...attach ourselves<BR>VERIFY(pUnk->QueryInterface(IID_IDispatch,(LPVOID*) &pDisp)==S_OK);<BR>AcadApp.AttachDispatch(pDisp,FALSE);<BR>pUnk->Release();<BR>}<BR>else<BR>// We must invoke our instance of AutoCAD...<BR>VERIFY (AcadApp.CreateDispatch(clsid)==TRUE);<BR>AcadApp.SetVisible(TRUE);<BR>}<BR>else<BR>AfxMessageBox("AutoCAD is Not Registered!");<BR>}<BR>
回复
zfbj版主,希望看到你的代码. 刚写完,呵呵。在你的基础上有了一点进步,能够创建一条直线了,真的是一小步。。。
希望我们共同做一个“安装包”的模板,以后大家自己做软件都可以使用了。
做“安装包”不是老板的专利!
回复
zfbj版主,看到你的贴子,很高兴,我原来只是自己想这么做,有些人肯定不能接受我这种做法,放着好好的,方便的InstallShield, Wise的安装程序不用,浪费时间.做这个安装包要视需要而定,我先按我的想法做一个,以后集成更多的功能.
第一次有人响应我的做法(当然也没对别人说过). 我实际上不会用Install Shield来做,因为在Install 和Wize中同样要使用COM来操作AutoCAD完成这些初始化操作,两者的脚本语言熟悉起来需要时间啊。
回复
本帖最后由 作者 于 2004-10-1 8:40:41 编辑是啊,慢慢积累吧.
国庆节快乐!