PB9.0调用C#编译的DLL文件

PB9.0调用C#编译的DLL文件

PowerBuilder9.0是一个比较老的语言,在对接第三方程序的情况下,存在不小的缺陷。为了方便实现跟第三方的接口对接,也上网查阅了资料,发现采用PB调用.NET编译好的dll文件可以完美的弥补缺陷。
接下来就为大家总结下,具体实现方式。

一、DLL文件生成

  1. 必须以管理员身份运行vs,否则在最后生成解决方案的时候无法通过。

  2. 其次,在新增C#项目的时候.NET框架一定要记得选择3.5,太高了不行,这点很重要。
    122222222222.NET框架一定要记得选择3.5,这点很重要

  3. 在项目中新建个类文件,然后在文件上面,类似下图

[ComVisible(true)]
[ClassInterface(ClassInterfaceType.AutoDual)]
[ProgId(“ReadDll.Test”)]

其中,ReadDll 指的是项目命名空间名称;
Test 指的是类文件名称

4.修改应用程序的 输出类型和程序集信息。

  • 将应用程序的输出类型改成“类库”
  • 将应用程序的程序集信息中的“使用程序集COM可见”的选择性勾选上。
    在这里插入图片描述
  1. 将 生成 中 “为COM互操作注册”选择勾选上
    在这里插入图片描述

  2. 生成解决方案后,会产生对应的DLL和TLB文件
    在这里插入图片描述
    在这里插入图片描述

  3. 将C#生成的DLL和TLB文件拷贝到PB9.0程序目录下,还需对DLL和TLB文件进行注册后才可以正常使用。

二、DLL和TLB文件注册

  1. 先添加环境变量 “C:\Windows\Microsoft.NET\Framework\v2.0.50727”,以win10操作系统为例:
    首先,选中电脑桌面上的“此电脑”,右键选择“属性”
    在这里插入图片描述
    然后,选择“高级系统设置”
    在这里插入图片描述
    其次,选择“环境变量”
    在这里插入图片描述
    最后,在系统变量 中找到变量名为“Path”的,双击打开后,新增个环境变量
    在这里插入图片描述

  1. 注册DLL和TLB文件,已管理员身份“命令提示符”,在命令窗口中输入“regasm C:\Users\ASUS\Desktop\C_dll\ReadDllNew.dll /tlb: ReadDllNew.tlb”
    其中“C:\Users\ASUS\Desktop\C_dll”表示DLL和TLB文件所在的目录路径,建议最好是直接将DLL和TLB文件拷贝到PB的程序目录下。
    在这里插入图片描述
    看到上图提示信息后就完成DLL和TLB文件测试了,就能调用C#中的方法了。

三、调用实例

  1. C#中的测试方法
 public int GetSum(int a, int b)
        {
            return a + b;
        }

在这里插入图片描述

  1. 在PB9.0中具体调用
int li_number,li_cel
encryption =create OLEObject
li_cel=encryption.ConnectToNewObject("ReadDll.Test")
li_number=encryption.GetSum(100,20)

在这里插入图片描述

就这样吧,第一次写,大家将就看着吧

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值