C#创建COM供PB调用

系统 1991 0
    PB9(包括 PB9)以前的版本都不能访问VS.Net创建的基于Net FrameWork下的程序,除非将程序编译成COM,PB才能正常调用。
    以下是我总结出的C#将类库编译成COM所需要的步骤:
1.创建一个类库程序;
2.在程序里添加using System.Runtime.InteropServices;
3.创建一个公用的函数,以供PB调用;
4.启动命令窗口;
5.生成snk文件:
    sn -k test2.snk
6.将cs文件编译成dll文件:
    csc /t:library /keyfile:test2.snk /out:test2.dll test2.cs
如果在程序中添加的引用不属于System下的,例如:Microsoft.VisialBasic.dll,编译的语句改为:
    csc /t:library /keyfile:test2.snk /out:test2.dll /r:Microsoft.VisualBasic.dll test2.cs
7.注册COM:
    regasm test2.dll /tlb:test2.tlb /codebase

C#例子的全部代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace test2
{
    public class test2
    {
        public int ShowMsg(out int a1,out string a2)
        {
            a1 = 200;
            a2 = "message";
            return 100;
        }
    }
}

    PB调用的方法如下:
OLEObject test2
long ll_status
integer li_return
long ll_a1
string ls_a2
//创建OLEObject对象
test2 = Create OLEObject
ll_status= test2.ConnectToNewObject("test2.test2")
if ll_status=0 then 
    //调用类内的公共函数
    li_return = test2.ShowMsg(ref ll_a1,ref ls_a2)
    messagebox(string(ll_a1)+" "+ls_a2,string(li_return))
end if
//释放资源
test2.DisConnectObject()

特别说明:
ll_status= test2.ConnectToNewObject("test2.test2")语句中的两个test2,前一个是C#的命名空间,后一个是类的名称。

C#创建COM供PB调用


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论