Results 1 to 5 of 5

Thread: Delphi typelib wordt niet herkend in C++ programma

  1. #1

    Delphi typelib wordt niet herkend in C++ programma

    gerelateerd aan thread "bestand opslaag vanuit javascript".
    Vanuit daarin genoemd artikel is het inderdaad gelukt iets te maken wat de beoogde functionaliteit levert. Er zijn echter een tweetal problemen.

    1. De applicatie bestaat (nog) uit twee delen: Het merendeel bestaat uit Delphi code (daar is dit ook ingebouwd) maar het feitelijke programma bestaat nog uit een flink aantal C++ sources - waaronder het hoofdprogramma. (We zijn bezig dit om te bouwen naar Delphi maar dat gaat niet in één keer). Compilatie van de C++ code gaat nu op zich goed, maar bij link blijkt de code van de typelibrary (xxx_tlb.obj) niet gevonden te worden. en dat zouden er meer kunnen zijn. met de rest van de Delphi-code is niets aan de hand. Ik heb gezocht waar de objectfile zou staan maar die is nergens te bekennen...

    2. In het voorbeeld programma wordt de type-library gevonden door:

    Code:
    var
      TypeLib: ITypeLib;
      Exename: WideString;
    begin
      Exename := ParamStr([0];
      Olecheck (LoadTypeLib(PWideChar(ExeName), TypeLib);
      inherited Create (TypeLib, <interface zoals degedinieerd>); 
    end;
    De naam van het uiteindelijke (C++) programma is anders dan Wat uit de Delphi code komt, en dat gaat dan dus mis: Daar zit de type-library niet in. Ik zou er een library voor moeten maken (denk ik) maar dat levert weer problemen met de Delphi code op. Vanwege (1) kom ik daar nu niet verder mee...

    Heeft iemand een idee hoe ik deze punten kan oplossen?

  2. #2
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Het probleem is dat de c++ code naar een .obj zoekt. Die moet ook loadtypelib gebruiken ?

    Delphi genereert doorgaans geen .objs, dus aan de C++ kant kloppen aannames niet?!?

  3. #3
    Senior Member Thaddy's Avatar
    Join Date
    Dec 2004
    Location
    Amsterdam
    Posts
    2,211
    Quote Originally Posted by marcov View Post
    Het probleem is dat de c++ code naar een .obj zoekt. Die moet ook loadtypelib gebruiken ?

    Delphi genereert doorgaans geen .objs, dus aan de C++ kant kloppen aannames niet?!?
    Doorgaans niet, maar de optie om objs te genereren is er wel (sinds delphi 1).

    Ik zou dus je lib als obj genereren (met dcc) en de tlb resource apart houden. de obj kan door C(++) gewoon gelinkt worden en de tlb ook.
    Problem solved.
    Werken aan Ansi support voor Windows is verspilde tijd, behalve voor historici.

  4. #4
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Wat genereert die dan, COFF of OMF, of maakt dat voor moderne VS niets meer uit?

  5. #5
    Senior Member Thaddy's Avatar
    Join Date
    Dec 2004
    Location
    Amsterdam
    Posts
    2,211
    Maakt ook voor moderne Delphi's niet uit: die genereren COFF...Geen OMF op windows.

    Er zijn trouwens conversie tools zoals OMF2COFF (in minstens twee smaken).Een er van zat altijd bij Delphi/BCC en Tasm als command line tool. Google er op. De beste die ik ooit had is GNU licensed, nog steeds onderhouden. Moet de link ff zoeken.
    Werken aan Ansi support voor Windows is verspilde tijd, behalve voor historici.

Thread Information

Users Browsing this Thread

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

Tags for this Thread

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
  •