我正在寻找关于调用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的问题。尝试过去三天,但没有运气。
答案 0 :(得分:0)
您的代码显示您尚未调用 ConnectToNewObject 函数来启动Ole服务器应用程序。创建ole_3之后,在调用RequestCardStatus函数之前,应该按如下方式调用此函数:
ole_3.ConnectToNewObject(classname)
其中classname是服务器的Progid或Classid
答案 1 :(得分:0)
必须使C#dll可见COM。
连接的语法(使用您的示例)将是:ole_3.ConnectToNewObject('NETS.NETS')