zoukankan      html  css  js  c++  java
  • COM应用总结(3/3)C#中的COM组件

    由于现在.net的应用比较广泛,日常的工作中会经常地遇到C#和COM的互操作问题,为了更完整,本篇把C#处理COM的情况汇总以下

    C#中对COM的互操作很是方便,具体如下:

    NO PIA

    C# 4.0引入的动态特性
      Guid id;
                 id = new Guid("D7D0B2E8-1795-4E23-96BF-F07EC28FB44C");
                 dynamic complug = Activator.CreateInstance(Type.GetTypeFromCLSID(id));
                 string t="dlr", r ;
                 complug.DoWork(t, out r);
                 Console.WriteLine(r);

    PIA

    首先IDE中Add Refernce引用组件,此时自动生成互操作的库(也可使用tlbimp.exe手动生成)

    ComPlugLib.MyKit kit = new ComPlugLib.MyKit();
                 kit.DoWork(t, out r);
     
    如果需要管理COM的生命周期[比如COM EXE进程的调用后即时结束等],可以使用
    Marshal.*** 处理com对象

    如下是对于Office操作的C#不同版本比较

    由于现在.net的应用比较广泛,日常的工作中会经常地遇到C#和COM的互操作问题,为了更完整,本篇把C#处理COM的情况汇总以下

    C#中对COM的互操作很是方便,具体如下:

    NO PIA

    C# 4.0引入的动态特性
      Guid id;
                 id = new Guid("D7D0B2E8-1795-4E23-96BF-F07EC28FB44C");
                 dynamic complug = Activator.CreateInstance(Type.GetTypeFromCLSID(id));
                 string t="dlr", r ;
                 complug.DoWork(t, out r);
                 Console.WriteLine(r);

    PIA

    首先IDE中Add Refernce引用组件,此时自动生成互操作的库(也可使用tlbimp.exe手动生成)

    ComPlugLib.MyKit kit = new ComPlugLib.MyKit();
                 kit.DoWork(t, out r);
     
    如果需要管理COM的生命周期[比如COM EXE进程的调用后即时结束等],可以使用
    Marshal.*** 处理com对象

    如下是对于Office操作的C#不同版本比较

    //C# 4.0

                dynamic word = Activator.CreateInstance(Type.GetTypeFromProgID("Word.Application"));
                word.Visible = true;
     
                var WordApplication = new Microsoft.Office.Interop.Word.Application();
                WordApplication.Visible = true;
                object missing = System.Reflection.Missing.Value;
                object file = @"c:\test.txt";
                object visible = true;
                object readOnly = false;
     
     // 需要引入 Microsoft.Office.Interop.Word.dll(VS安装)
                 //C# 4.0 Named and Optional Parameters
                 var betterWay = WordApplication.Documents.Open(file, ReadOnly: true, Visible: true);
                 betterWay.Activate();
                 betterWay.Close();
     
                 //C# 1.0~3.5(.net3.0有一个简化的操作库Office) http://www.microsoft.com/downloads/details.aspx?FamilyID=46B6BF86-E35D-4870-B214-4D7B72B02BF9&displaylang=en VSTO_PTExtLibs.exe
                 Document aDoc = WordApplication.Documents.Open(
                 ref file, ref missing, ref readOnly, ref missing,
                 ref missing, ref missing, ref missing, ref missing,
                 ref missing, ref missing, ref missing, ref visible,
                 ref missing, ref missing, ref missing, ref missing);
                 aDoc.Close();
  • 相关阅读:
    打开安装 好的Microsoft Dynamics CRM 4.0 报错误为 Caller does not have enough privilege to set CallerOriginToken to the specified value 的解决办法
    基于 Windows Server 2008 的计算机对 Microsoft Dynamics CRM 4.0 的支持
    Microsoft Dynamics CRM 4.0 如何添加自定义按钮
    Microsoft Dynamics CRM 4.0 Plugin 取值,赋值,查询
    C# 中的 enum(枚举) 类型使用例子
    vue事件的绑定
    表单验证2
    node中模块
    node模块的引入
    node中的读文件
  • 原文地址:https://www.cnblogs.com/2018/p/1801793.html
Copyright © 2011-2022 走看看