vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 12 bzw. 19 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2016
 
zurück
Rubrik: COM/OLE/Registry/DLL · Sonstiges   |   VB-Versionen: VB4, VB5, VB628.11.03
Funktion in einer DLL vorhanden?

Diesmal zeigen wir, wie sich prüfen lässt, ob eine DLL eine bestimmte Funktion enthält oder nicht.

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  11.066 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Summer-Special bei Tools & Components!
Gute Laune Sommer bei Tools & Components
Top Summer-Special - Sparen Sie teilweise bis zu 120,- EUR
Alle sev-Entwicklerkomponenten und Komplettpakete jetzt bis zu 25% reduziert!
zum Beispiel:
  • Developer CD nur 479,20 EUR statt 599,- EUR
  • sevDTA 2.0 nur 224,30 EUR statt 299,- EUR
  •  
  • vb@rchiv   Vol.6 nur 20,00 EUR statt 24,95 EUR
  • sevCoolbar 3.0 nur 55,20 EUR statt 69,- EUR
  • - Werbung -Und viele weitere Angebote           Aktionspreise nur für kurze Zeit gültig

    Vor kurzem haben wir Ihnen gezeigt, wie sich prüfen lässt, ob eine bestimmte DLL vorhanden ist und ob es sich bei der DLL um eine Standard-DLL oder eine ActiveX-DLL handelt. Siehe hierzu auch:  Prüfen ob DLL vorhanden und DLL-Typ ermitteln

    Wenn Sie sich diesen Tipp einmal ganz genau ansehen, dann entdecken Sie, dass man hiermit ebenfalls prüfen kann, ob eine bestimmte Funktion in der DLL vorhanden ist oder nicht (siehe Prüfung, ob es sich um eine ActiveX-DLL handelt).

    Nachfolgende Funktion baut auf oben genannten Tipp auf und prüft die Verfügbarkeit einer DLL-Funktion.

    Option Explicit
     
    ' Benötrite API-Deklarationen
    Private Declare Function LoadLibrary Lib "kernel32" _
      Alias "LoadLibraryA" ( _
      ByVal lpLibFileName As String) As Long
     
    Private Declare Function FreeLibrary Lib "kernel32" ( _
      ByVal hLibModule As Long) As Long
     
    Private Declare Function GetProcAddress Lib "kernel32" ( _
      ByVal hModule As Long, _
      ByVal lpProcName As String) As Long
    ' Funktion in DLL vorhanden?
    Public Function DLLFunctionAvail(ByVal sFile As String, _
      ByVal sProcedure As String) As Boolean
     
      Dim nHandle As Long
     
      ' DLL laden
      nHandle = LoadLibrary(sFile)
      If nHandle <> 0 Then
        ' Versuch die Adresse der Funktion zu ermitteln
        If CBool(GetProcAddress(nHandle, sProcedure)) = True Then
          ' Jepp: Funktion vorhanden
          DLLFunctionAvail = True
        End If
     
        ' Speicher wieder freigeben
        Call FreeLibrary(nHandle)
      End If
    End Function

    Die Funktion DLLFunctionAvail erwartet als ersten Parameter den Namen der DLL-Datei. Wird kein Pfad angegeben, wird in den Systempfaden nach der DLL gesucht. Als zweiten Parameter wird der Name der Funktion/Prozedur erwartet. Existiert die Prozedur wird TRUE zurückgegeben, andernfalls FALSE.

    HINWEIS:
    Bei der Angabe der zu prüfenden Funktion/Prozedur ist auf exakte Groß-/Kleinschreibung zu achten!

    Beispiel:

    Die Funktion SetLayeredWindowAttributes aus der User32.dll steht erst ab Windows 2000 oder höher zur Verfügung. Wenn Sie diese Funktion in Ihrer Anwendung verwenden können Sie entweder das Betriebssystem abfragen oder ab sofort auch direkt die Verfügbarkeit der Funktion prüfen.

    ' Prüfen, ob die Funktion "SetLayeredWindowAttributes"
    ' zur Verfügung steht
    If DLLFunctionAvail("user32", "SetLayeredWindowAttributes") Then
      ...
    End If

    Dieser Tipp wurde bereits 11.066 mal aufgerufen.

    Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

    Über diesen Tipp im Forum diskutieren
    Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

    Neue Diskussion eröffnen

    nach obenzurück


    Anzeige

    Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
    (einschl. Beispielprojekt!)

    Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
    - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
    - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
    Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
     
       

    Druckansicht Druckansicht Copyright ©2000-2016 vb@rchiv Dieter Otter
    Alle Rechte vorbehalten.
    Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

    Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel