2010-11-12 165 views
2

我第一次引用this question返回复杂类型(类的类,数组)上手,但达到了试图返回类时路障或使用.NET程序集的类的阵列德尔福XE。使用JCL和CLR

考虑以下几点:

//C# 
[ComVisible(true)] 
public class Person { 
    public int Id; 
    public string Name; 
} 

public class SomeClass 
{ 
    public SomeClass() {}   

    public Person[] GetPersons() 
    { 
     //some code 
    } 
} 

//Delphi 
type TPerson = class 
    Id : Integer; 
    Name : string; 
end; 

我如何做是从GetPersons()回来,我可以分配给德尔福array of TPerson数据的意义吗?

回答

2

你不能,至少不是这样。 Delphi和.NET有不同的对象模型和不同的字符串类型,它们不相互兼容。如果你想在.NET和Delphi模块之间传递对象,最好的方法是使用COM。

+0

+1对于“Delphi和.NET有不同的对象模型和不同的字符串类型,它们不相互兼容” – 2010-11-16 07:59:53

+0

您能否提供带有示例的链接?我没有任何使用COM的经验。 – 2010-11-17 02:16:39