C#生成com组件,供VB調用

一、vs2005—新建项目—C#类库

类库源码如下(包含接口,类,事件接口):

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Data.SqlClient;
using System.Runtime.InteropServices;

 

namespace ComSample
{

    //Guid值的产生:Program Files/Microsoft Visual Studio 8/Common7/Tools/guidgen.exe,运行它,选中单选4,点“New Guid”,点“Copy”,进入类库,粘贴即可
   //类接口

[Guid("EF19CC19-2ECE-46ae-A8C7-F3B6180117CA")]      
    public interface IComTest
    {
        [DispId(1)]
        void helloWorld(string msg);

        [DispId(2)]
        string CnnDB(String cnnStr);
    }

 

 

// 事件接口
    [Guid("45875EE5-5C8D-4016-897A-FCC7DD5A6834"),             //固定写法
        InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
    public interface ini_mng_Events
    {

    }

 

 

    //类
    [Guid("8EDFA9EA-9589-4157-AEEF-AB4861EFE5D6"),                 //固定写法
    ClassInterface(ClassInterfaceType.None),
    ComSourceInterfaces(typeof(hst_odr_Events))]

    [ComVisible(true)]
    public class ComTest : ComSample.IComTest
    {


        public void helloWorld(string msg)
        {
            MessageBox.Show(msg);
        }

        public string CnnDB(String cnnStr)
        {

            string result="";

            try
            {
                using (SqlConnection sqlCnn = new SqlConnection(cnnStr)) 
                {


                    sqlCnn.Open();
                }

                result = "OK";
            }

            catch (Exception ex)
            {
                result=ex.Message;

            }

            return result;

        }

        public DataSet GetData()
        {
            string sqlStr = "Select top 1 * from tbsf_staff  order by ID DESC";

           
        }
    }

 

 

二、类库生成COM组件

完成第一步(编代码),然后
1、开始—VS2005 —VS Tools—VS命令提示符,输入“sn -k a1.snk”,回车,再输入“sn -p a1.snk a2.snk”,回车,最后输入“sn -t a2.snk”,回车,关闭完成。

   或者  通過工程屬性-->簽名-->為程序集簽名(選擇“新建")


2、VS2005类库属性—生成—输出—选中“为com.....注册”选项
3、VS2005类库属性—Signing —签名文件—浏览到a1.snk文件(Program FilesMicrosoft Visual Studio 8VC)
4、VS2005—Assembly.cs—comVisible设为true
5 、生成项目—即在bin下生成

6. 用RegAsm.exe工具注册我们的类: RegAsm Project1.DLL /codebase

 

三、VB調用

1.新建VB工程

2.工程-->引用 ,找到剛注冊的COM組件ComSample

3.代碼創建對象測試:

   Dim obj As ComSample.ComTest
    Dim str As String
   
    Set obj = New ComSample.ComTest
   
    obj.helloWorld "你好啊"
   
    str = obj.CnnDB("Data Source=192.168.30.204; User ID=sa;  Password=123654;Initial       Catalog=BSMaster  ")
   
    Print str

 

 

四、客戶端注冊Com+组件

 1.

  注册COM的命令   Regasm.exe ComSample.dll /codebase
  卸载COM的命令   Regasm.exe ComSample.dll /unregister

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值