如何处理从 c# 到 PowerBuilder 的 'ArrayList'
How to Handle an 'ArrayList' from c# to PowerBuilder
您好,我已经使用 returns ArrayList 的函数从 c# 创建了一个 DLL,现在我正尝试在我的 PowerBuilder 应用程序中调用它。如何在我的 PowerBuilder 应用程序中处理从 DLL 返回的 ArrayList?或者除了使用 ArrayList 之外还有其他方法吗?提前致谢。
这是我的 C# 代码
using System;
using System.Collections;
using System.Linq;
using System.Text;
using System.IO.Ports;
using System.Management;
namespace GetPorts
{
public class Class1
{
public ArrayList getPortNames()
{
ArrayList com_port_name = new ArrayList();
using (var searcher = new ManagementObjectSearcher("SELECT * FROM WIN32_SerialPort"))
{
string[] portnames = SerialPort.GetPortNames();
var ports = searcher.Get().Cast<ManagementBaseObject>().ToList();
var tList = (from n in portnames join p in ports on n equals p["DeviceID"].ToString() select n + " - " + p["Caption"]).ToList();
foreach (string s in tList)
{
com_port_name.Add(s);
}
}
return com_port_name;
}
}
}
假设这将是一个 COM 可见组件,您可以在 Powerbuilder 中尝试的一件事是将 returned 字符串数组放入 'any' 变量(或者可能是任何变量的数组
喜欢:
any lany[]
lany = <com_componenet_name>.getportnames()
当我对图像做了这样的事情后,我在 class 上设置了一个属性来保存 return 值(在你的例子中是一个字符串数组),通过 COM 公开它, 调用方法设置它的值,然后直接从 Powerbuilder 中引用它。
喜欢:
any lany[]
string ls[]
<com_component_name>.getportnames() //set the portnames attribute
lany = <com_component_name>.portnames()
ls = la
// now use the string array in Powerbuilder
您好,我已经使用 returns ArrayList 的函数从 c# 创建了一个 DLL,现在我正尝试在我的 PowerBuilder 应用程序中调用它。如何在我的 PowerBuilder 应用程序中处理从 DLL 返回的 ArrayList?或者除了使用 ArrayList 之外还有其他方法吗?提前致谢。
这是我的 C# 代码
using System;
using System.Collections;
using System.Linq;
using System.Text;
using System.IO.Ports;
using System.Management;
namespace GetPorts
{
public class Class1
{
public ArrayList getPortNames()
{
ArrayList com_port_name = new ArrayList();
using (var searcher = new ManagementObjectSearcher("SELECT * FROM WIN32_SerialPort"))
{
string[] portnames = SerialPort.GetPortNames();
var ports = searcher.Get().Cast<ManagementBaseObject>().ToList();
var tList = (from n in portnames join p in ports on n equals p["DeviceID"].ToString() select n + " - " + p["Caption"]).ToList();
foreach (string s in tList)
{
com_port_name.Add(s);
}
}
return com_port_name;
}
}
}
假设这将是一个 COM 可见组件,您可以在 Powerbuilder 中尝试的一件事是将 returned 字符串数组放入 'any' 变量(或者可能是任何变量的数组
喜欢:
any lany[]
lany = <com_componenet_name>.getportnames()
当我对图像做了这样的事情后,我在 class 上设置了一个属性来保存 return 值(在你的例子中是一个字符串数组),通过 COM 公开它, 调用方法设置它的值,然后直接从 Powerbuilder 中引用它。
喜欢:
any lany[]
string ls[]
<com_component_name>.getportnames() //set the portnames attribute
lany = <com_component_name>.portnames()
ls = la
// now use the string array in Powerbuilder