PB 調用.NET COM組件

對於現在使用PB和.NET同時開發的項目,現在.NET已經有的功能,想在PB下調用,只能把.NET做成COM組件,再在PB中調用。

方法如下:

   一.在.NET中新建類庫

   二.註冊類庫

   三.在PB中調用

下面詳細介紹一下:以.NET2005和PB11.5爲例

一、在.NET中新建類庫

  1.打開Microsoft Visual Studio 2005

2.新建類庫項目:點文件-->新建-->項目,在打開窗口選擇類庫

PB <wbr>調用.NET <wbr>COM組件

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組件。

PB <wbr>調用.NET <wbr>COM組件

5.修改項目屬性,點項目,右鍵,選屬性。

PB <wbr>調用.NET <wbr>COM組件

在“生成”TAB屬性頁中選中“爲COM Iterop註冊

PB <wbr>調用.NET <wbr>COM組件

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 

return_code = example.ConnectToNewObject("demo.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組件的工作。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章