AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) registerassembly aus einerdll registrieren.
Thema durchsuchen
Ansicht
Themen-Optionen

registerassembly aus einerdll registrieren.

Ein Thema von Digielm · begonnen am 19. Dez 2011 · letzter Beitrag vom 10. Apr 2012
Antwort Antwort
Digielm

Registriert seit: 2. Aug 2006
246 Beiträge
 
Delphi 5 Enterprise
 
#1

registerassembly aus einerdll registrieren.

  Alt 19. Dez 2011, 10:48
Hallo Zusammen ich habe in einer dll einen Typ
TYPELIB eingefügt.

dort sind TLBs auf DElphi ActiveX typen und auch Assembly Typelibs.

Ich rufe diese Routine auf.

Delphi-Quellcode:
    for i := 0 to FExeFile.Resources.Count -1 do
    begin
      if (Uppercase(FExeFile.Resources.Items[i].Name) = 'TYPELIB') then
      begin
        for j := 0 to FExeFile.Resources.Items[i].List.Count-1 do
        begin
          AppName := ExtractFilePath(Application.ExeName)+'ccimages.dll\' + FExeFile.Resources.Items[i].list.Items[j].Name;
          try
            OleCheck(LoadTypeLib(PWideChar(AppName), tlib));

            OleCheck(RegisterTypeLib(tlib, PWideChar(AppName),nil));
          except
            on e:Exception do
            begin
              ShowMessage(Format(strExRegFailure,[j+1,E.Message]));
            end;
          end;
        end;
      end;
    end;
bei Win32 Typelibs klappt das auch alles.

Nur wenn ich ASsemblys als Typelib reinsetze nicht mehr.

ich habe den Source TREGSVR durchstöbert und dort einiges gefunden, nur muss bei dem Aufruf die assemlbyTypelib als Datei vorliegen.

Wie kann ich das anpassen, dass ich die Typelib aus einer Resource in einer DLL registriert bekomme ??
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#2

AW: registerassembly aus einerdll registrieren.

  Alt 10. Apr 2012, 23:56
Also ich weiß nur daß ATL das kann. Ich würde mich also einfach auf MSDN-Library durchsuchenAtlRegisterTypeLib stützen welches du in der atl71.dll findest. Kommt natürlich drauf an auf welchen Systemen das laufen soll. Diese Funktion existiert aber in den atl<irgendwas> DLLs die ich auf meinem System habe.

MSDN-Library durchsuchenRegisterTypeLib und MSDN-Library durchsuchenLoadTypeLib werden übrigens intern von AtlRegisterTypeLib aufgerufen.

Hättest du auch noch sinnvolle Details was genau schiefläuft? Bspw. die exakten Fehlercodes ...

Außerdem: ich kenne nicht dein FExeFile.Resources.Items[i].list.Items[j].Name, aber es gibt da verschiedene Notationen. Du mußt dort exakt den Index angeben ... es darf scheinbar kein anderes Zeichen als Ziffern enthalten sein (also nicht bspw. #). Wäre interessant das mal zu überprüfen welcher String dort zusammengebastelt wird.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz