2 u013738215 u013738215 于 2016.04.23 22:08 提问

C#利用程序打开SLDPRT文件

我看了说是要应用SolidWorks API SDK
http://www.cnblogs.com/liong/archive/2008/05/21/1204404.html
照着这个做了一下 结果发现com组件引用不了

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SolidWorks.Interop.sldworks;
using SolidWorks.Interop.swconst;

namespace WebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Command(object sender, CommandEventArgs e)
        {
            int IErrors = 0;
            int IWarnings = 0;
            SolidWorks.Interop.sldworks.SldWorks swApp = new SolidWorks.Interop.sldworks.SldWorks();
            swApp.OpenDoc6(@"E:\a.SLDPRT", (int)SolidWorks.Interop.swconst.swDocumentTypes_e.swDocPART, (int)SolidWorks.Interop.swconst.swOpenDocOptions_e.swOpenDocOptions_Silent, null, ref IErrors, ref IWarnings);
            swApp.Visible = true;  
        }
    }
}

最后发现
检索 COM 类工厂中 CLSID 为 {88CEE7FD-9F58-4962-8483-041AB9AD69A2} 的组件失败,原因是出现以下错误: 80040154 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。

我注册了啊

2个回答

CSDNXIAOS
CSDNXIAOS   2016.04.23 22:12
已采纳

如何在程序中打开文件(相当于鼠标双击该文件),这里有两种方法:
(1)使用进程打开文件,使用方法如下:
 
        string fileName = ....;    //文件绝对路径
        ......
答案就在这里:C#中利用程序打开文件
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

u013738215
u013738215 回复奥维德: 问题基本解决 但是想看看有其他方法没有
一年多之前 回复
u013738215
u013738215 问个问题 如果我想让这个视频文件在页面上直接播放可以吗 不用打开那个软件
一年多之前 回复
caozhy
caozhy   Ds   Rxr 2016.04.23 23:27

先安装SolidWorks,然后引用com,要注意版本,如果是64bit系统,要限制程序集在32bit上运行。

u013738215
u013738215 这个方法实践到最后就是dll文件死活报错 各种注册成功就是报没注册
一年多之前 回复
u013738215
u013738215 但是安装过后没有com组件啊
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!