Results 1 to 2 of 2

Thread: Delphi --> COM --> VB problemen

  1. #1
    Registered User
    Join Date
    Jan 2003
    Location
    Nederland
    Posts
    1

    Delphi --> COM --> VB problemen

    Hallo allemaal,


    De situatie is dat ik met mijn Delphi programma een activeX applicatie geschreven in VB moet kunnen aanspreken. Van het betreffende programma is geen source code beschikbaar, maar eerdere client programma's in VB werken prima.

    Ik loop tegen de volgende problemen:

    In Delphi 5 stopt het importeren van de type library met de melding "Ghostmethod_240 already exists". Einde Oefening.

    In Delphi 4 lukt het importeren wel en ik kan nu redelijk met de activex app werken.
    Het valt wel op dat ik alleen maar wegkom met de dispinterface - maar dat vind ik niet erg.

    Behalve WideStrings en SmallInt zijn er ook functies die een array by reference
    verwachten, deze herdimensioneren en vullen met strings.
    Een voorbeeld is als volgt in de .TLB gedefinieerd:

    function GetCalibrations(var Description: {??PSafeArray} OleVariant;
    var NbrCalibrations: Smallint): OleVariant; dispid 1610809402;

    in mijn programma:

    procedure listCalibrations;

    var
    N: SmallInt;
    CalList: OleVariant;
    Resl: OleVariant;

    begin
    CalList:= varArrayCreate([0,0], varOleStr);
    Resl:= AppDI.GetCalibrations(CalList, N);

    // etc..
    end;


    Hiermee probeer ik dus de array van strings Description uit te lezen en het aantal.

    Het probleem is dat ik nu een runtime "type mismatch" exception krijg.

    Ik heb geprobeerd 'OleVariant' in 'PSafeArray' te veranderen (waarom genereerd Delphi 4 dit wazige commentaar {??PSafeArray} eigenlijk ? het heeft er vast iets mee te maken) - maar dit geeft een compiler "type not allowed in OLE automation section". Tenslotte, vervanging van 'var' door 'const' schiet het doel voorbij hoewel ik dan geen exceptions meer krijg (en NbrCalibrations klopt ook).
    Dit probleem gebeurd dus alleen bij het 'by reference' passen van een OleVariant vanuit Delphi naar een VB applicatie.

    Heeft iemand hierover meer te zeggen?

    Groeten,

    sdk.

  2. #2
    Senior Member PsychoMark's Avatar
    Join Date
    Nov 2001
    Location
    Raamsdonksveer
    Posts
    10,269
    Wat ik in de praktijk heb gemerkt is dat je het beste iemand kan zoeken met Delphi 7. De Type Library import is daar significant verbeterd, met name dat type libraries die daarvoor allemaal OleVariant parameters accepteerden nu wel de juiste typen aangeven... laten kan je deze type library dan gebruiken in D6 of 5, of misschien zelfs 4, da's geen probleem. Met een goeie type library import heb je ook minder kans dat je dit soort fouten krijgt...
    Qui custodiet ipsos custodes

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Replies: 21
    Last Post: 10-Nov-02, 18:16
  2. VB Programmeur ontdekt Delphi
    By Marcel in forum Koffiehoek
    Replies: 10
    Last Post: 28-Aug-02, 23:14
  3. VB naar Delphi
    By rckoenes in forum Algemeen
    Replies: 6
    Last Post: 18-Oct-01, 15:55
  4. Excel -> Delphi 6
    By maespeter in forum Algemeen
    Replies: 2
    Last Post: 11-Sep-01, 12:58
  5. Wijzigingen Delphi 5 -> Delphi 6
    By maespeter in forum Algemeen
    Replies: 2
    Last Post: 04-Sep-01, 14:38

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •