本人正在做一个大型软件的一个部分,是关于视频方面的,由于某些部分是由Delphi做的,现在问题是由于这一部必须传给VC开发的一个显示控制程序,所以不得不将这一部分的数据 从Delphi中传到VC开发的那一部分。能不能给我一个例子。

解决方案 »

  1.   

    在Delphi要用Windows有的类型,不要用Delphi中的类,用record封装好,Delphi的应用程序用COM Server,这样,就可以写接口,封装成OleVariant,其实是Variant数组,对应了Windows的SafeArray,这样就可以了,比如看看下面的简单调用范例:
    Delphi:
    type
        TDelphiRecord = record
            ch: Char;
            str: Array[0..255] of Char;
            i: Integer;
        end;function GetPackedData(pData: VARIANT): HRESULT; stdcall;
    var
        data: TDelphiRecord;
    begin
        with data do begin
            ch := 'N';
            ....
        end;
        Result := data;
    end;VC取得数据后强制转化成SafeArray就可以定义同样的struct来读取数据。