C#创建COM供PB调用

发表于:2013-10-21 09:39

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:yudehui    来源:51Testing软件测试网采编

  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()
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号