2010-08-21 3 views
2

에서 COM을 통해 복잡한 정보 전달 Delphi와 C# 프로그램간에 일련의 복잡한 레코드 (수많은 필드와 레코드)를 앞뒤로 전달해야합니다. 나는 IEnumVariant를 사용해야한다고 생각하지만 typelibrary 디자이너로 이것을 디자인 할 수있는 것처럼 보이지 않습니다.COM을 통해 Delphi 코드

도움을 주시면 감사하겠습니다.

감사

업데이트

나는 요구를 데이터의 복잡성을 일부 설명을 요구하는 것을 시도하고있는 무슨 같아요.

저는 COM을 통해 COM을 통해 각각 '속성'컬렉션으로 구성된 '레코드'컬렉션을 만들어 C# (또는 다른 언어)로 내보내야합니다. 각각의 속성은 여러 속성으로 구성됩니다.

그래서 컬렉션 컬렉션입니다! 우리가 어떻게 여기에 왔는지 묻지 마라.

그래서 속성 -> 필드 -> 레코드 정렬 구조가 있습니다. 나는 수출 할 필요가있는 것을 파악하고 있지만 회사의 이유로 여기에 세부 정보를 게시 할 수는 없지만 COM에서 해당 데이터를 내보내는 방법을 모른다.

아마도 필자는 필요한 구조를 모방 할 테스트 프로그램을 처음부터 만들어야하고, 점차로 그것들을 COMize하고 내가 어디로 가는지 볼 수 있어야합니다.

답변

1

나는 내 자신의 질문에 답변 할 것입니다!

IEnumVARIANT에서 dessended되는 일련의 클래스를 만들었습니다.이 클래스는 데이터, 목록 및 레코드의 다양한 비트 모음을 나타냅니다. 각 필드는 간단한 COM 인터페이스 정의였습니다.

TList로 필드/레코드/등의 컬렉션을 구현할 때 this location의 예제를 사용했습니다.

2

클래스의 정보를 캡슐화합니다. 모든 언어로 잘 작동하며 COM에서도 잘 작동합니다.

+0

C#은 Delphi 클래스에 대해 아무것도 알지 못합니다. 그 반대도 마찬가지입니다. OP의 질문에 전혀 답을 얻지 못했습니다. 문제는 "COM을 통해 복잡한 정보를 C#과 Delphi 코드간에 전달하는 방법"이었습니다. "클래스 사용"은 도움이되지 않는다고 말합니다. –

+2

있습니다. 다른 것은 문제가 있습니다. COM은 레이아웃이 컴파일러에 따라 다르기 때문에 구조를 잘 지원하지 않습니다. 클래스 매핑은 문제가되지 않지만 속성과 메서드는 COM 인터페이스에 매핑됩니다. 그것은 .NET과 Delphi 둘 다에 내장 된 접착제입니다. –

관련 문제