从PowerBuilder调用C#(.NET)方法

时间:2014-12-18 04:27:44

标签: c# .net powerbuilder

我正在寻找关于调用C#模块的方向 (来自.NET(2.1)框架)来自PowerBuilder。这是C#.NET 信息:该功能用于连接COM PORT设备并获取设备状态。

NameSpace:  NETS
Class:    NETS
Method:    REQUESTCARDSTATUS()
DLL:    NETS.dll

在Powerbuilder中使用我的dll作为OLE对象。我正在使用PowerBuilder版本11.5。我有一个简单的窗口,上面有一个命令按钮。在此窗口中,我的代码如下所示:

OLEObject ole_3 ole_3 = CREATE OLEObject

//连接到C#类
MessageBox("Value = ", +String(li_rc)) IF li_rc <> 0 THEN     DESTROY ole_3 END IF

 li_sum = ole_3.RequestCardStatus(); 

调用此函数时出错R0035:调用外部函数时出错。

当尝试使用c#应用程序调用该函数时,该函数正常工作。我不知道是什么导致了powerbuilder的问题。尝试过去三天,但没有运气。

2 个答案:

答案 0 :(得分:0)

您的代码显示您尚未调用 ConnectToNewObject 函数来启动Ole服务器应用程序。创建ole_3之后,在调用RequestCardStatus函数之前,应该按如下方式调用此函数:

  

ole_3.ConnectToNewObject(classname)

其中classname是服务器的Progid或Classid

答案 1 :(得分:0)

必须使C#dll可见COM。

连接的语法(使用您的示例)将是:ole_3.ConnectToNewObject('NETS.NETS')