Einzelnen Beitrag anzeigen

Mr.borland

Registriert seit: 16. Mai 2007
Ort: Plüderhausen
34 Beiträge
 
#3

Re: Com Objekt arrays als Übergabeparameter

  Alt 18. Jan 2008, 14:13
ok, habe deinen rat befolgt habe auch eine Ansatz gemacht jedoch habe ich probleme:

die Funktion SikoGetScale soll als übergabe parameter ein array erhalten
...das heißt ich muss eine funktion im meinem Com-server integrieren das ungefähr so aussieht:

Delphi-Quellcode:
// *********************************************************************//
// Interface: ISikoInterface
// Flags: (256) OleAutomation
// GUID: {C78E36A5-99CF-4C1F-939D-324920AE34F8}
// *********************************************************************//
  ISikoInterface = interface(IUnknown)
    ['{C78E36A5-99CF-4C1F-939D-324920AE34F8}']
          ...
    function SikoGetScale(gNumber: SYSINT; buffSize: SYSINT; var buffArray: OleVariant): SYSINT; stdcall;
  end;
und kann dann in dem client Applikation wie folgt vorgehen:

Delphi-Quellcode:
   
procedure TMainWin.button1Click(Sender: TObject);
var
    index : integer;
    buffSize: Integer;
    myArray : OleVariant;
    Siko : ISikoInterface;
begin
        Siko := CoSikoInterface.Create;

        buffSize := 10000;
        myArray := VarArrayCreate([0..10000],varDouble);

        Siko.SikoGetScale(0, buffSize,myarray ); //<--- hier mache ich einen Fehler ??? warum???

        for index:=0 to (buffSize-1) do
           zeichne myArray[index]
end;
was mache ich falsch? gibt es vielleicht einen besseren(optimaleren) weg arrays zuübergeben?

danke für deine Hilfe
  Mit Zitat antworten Zitat