SolidWorks机械工程师网——最大的SolidWorks学习平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

好品数字
好品数字

C++开发sw异步模式问题exe

查看数: 821 | 评论数: 7 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2013-3-24 15:51

正文摘要:

我想开发一个exe形式的小程序。想实现点击一个按钮就可以输出SolidWorks文档路径。先代码如下: void CExternDlg::OnButton1() { // TODO: Add your control notification handler code here ISldWorks m_SldWo ...

回复

jiangjiaming 发表于 2013-3-24 16:13:22
楼上理解应该是对的,不打开怎么算是激活的呢
建议楼主利用录制来了解代码
lolanda 发表于 2013-3-24 16:11:29

不知道我理解的对不对。
用GetActiveDoc()的时候只有SolidWorks中有打开并激活的文件才能得到指针,否则为空。他的字面意思就是“得到激活的文档”。
xcvdrglibw 发表于 2013-3-24 16:02:15
你设置断点调试试一下,看看是哪句出了问题;
是到哪里出了问题;
wyzwpw 发表于 2013-3-24 16:00:36

我现在遇到的问题是,以exe形式的应用程序,无法连接到SolidWorks。无法获得SolidWorks当前的活动文档。如,我用GetActiveDoc()可以获得一个指针,再把指针付给其他对象时就无法完成。如用pModelDoc.AttachDispach(指针),就会出现死掉的情况。
然而用通过应用程序的对话框打开一个SolidWorks 文件在应用此方法是就不会有任何问题
代码如下:
ISldWorks m_SldWorks ; //////定义SolidWorks对象
IModelDoc  pModelDoc;//////定义ModelDoc对象
CFileDialog filedlg(TRUE,NULL, NULL,  NULL, NULL, NULL );///文件选择对话框
        if(filedlg.DoModal()==IDOK)
        {
pos=filedlg.GetStartPosition( );
       while(pos!=NULL)
       {
   path=filedlg.GetNextPathName(pos);  //所选择文件的路径  
       }
        }
BOOL panduan=m_SldWorks.CreateDispatch(&quot;SldWorks.Application&quot;,NULL); ///运行SolidWorks
if(panduan==TRUE)
{
m_SldWorks.SetVisible(FALSE);        //设置SolidWorks为不可见
        }
else
{
AfxMessageBox(&quot;不能运行SldWorks,请检查是否安装了SldWorks&quot;); ///如果运行SolidWorks出错则提示并返回
return;
}        
LPDISPATCH modDisp=m_SldWorks.OpenDoc(path,type);///获得所打开文档的DISPATCH指针
pModelDoc.AttachDispatch(modDisp);///将DISPATCH指针赋值给ModelDoc对象。
这样就不会有问题,请问大神用vb.net时是怎样连接SolidWorks的,用c++做插件是不会有问题,
wyqihw 发表于 2013-3-24 15:56:25
晕了晕了    帮顶!!!  我也学习学习
wangli182003 发表于 2013-3-24 15:52:16
我不是高手,俺也是初学者,不过做这个程序很小菜。我用的vb.net,不过应该大体都差不多吧。vb.net中F8是单步执行,C++也差不多吧,单步执行,找到问题代码,然后再修改
琛瑞2157 发表于 2013-3-24 15:52:13
还望高手指点啊
关闭 卷起
关闭 卷起

手机版|小黑屋| GMT+8, 2024-5-16 21:06 , Processed in 0.194200 second(s), 41 queries .

SolidWorks机械工程师网 ( 鲁ICP备14025122号-2 ) 鲁公网安备 37028502190335号

声明:本网言论纯属发表者个人意见,与本网立场无关。
如涉版权,可发邮件: admin@swbbsc.com

快速回复 返回顶部 返回列表