PB 调用.NET COM组件(1)

对于现在使用PB和.NET同时开发的项目,现在.NET已经有的功能,想在PB下调用,只能把.NET做成COM组件,再在PB中调用。

方法如下:

   一.在.NET中新建类库

   二.注册类库

   三.在PB中调用

下面详细介绍一下:以.NET2005和PB11.5为例

一、在.NET中新建类库

  1.打开Microsoft Visual Studio 2005

2.新建类库项目:点文件-->新建-->项目,在打开窗口选择类库



3.添加代码:

新建后出现一个Class1.cs的类库文件,打开,修改成代码如下:

using System;

using System.Collections.Generic;

using System.Text; 

namespace demo

{

    public class Class1

    {

        public int AddTenToParameter(int param1)

        {

            return param1 + 10;

        }

         public void SayHi()

        {

            System.Windows.Forms.MessageBox.Show("Hello World!");

        }

         public String GiveMeDate()

        {

            return DateTime.Now.ToLongDateString();

        }

    }

}

   4.添加引入,因为MessageBox需要Form组件。

5.修改项目属性,点项目,右键,选属性。

在“生成”TAB属性页中选中“为COM Iterop注册



6.在Class1.cs中增加引入

using System.Runtime.InteropServices;

7.增加下面属性到类

[ComVisible(true)] [ClassInterface(ClassInterfaceType.AutoDual)] [ProgId("demo.Class1")] 
现在类库就完成了,可以编译使用了。如要修改ProgId可以在AssemblyInfo.cs 进行修改。 
二.注册类库 
使用regasm进行注册 
命令如下:regasm demo.dll /tlb:demo.tlb  

 三.在PB中调用

   在程序中用以下代码

int return_code 
OLEObject example 
example = Create OLEObject
return_code = example.ConnectToNewObject("ComTest.Class1")
if return_code <> 0 then
       destroy example
       messagebox('错误','打开OLE出错!')
       return
else
       example.sayhi()
       int v = 20
       messagebox('result',v)
       string s
       s = example.givemedate()
       messagebox('result',s)
end if

现在就完成了在PB中调用.NET组件的工作。

代码下载地址

http://download.csdn.net/detail/tangkechu/7602939


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值