Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
05.01.2002, 09:43
OBT



wie binde ich eine .dll in mein vb-prog ein? wäre nett wenn wer antworten würde naja cu @ll OBT

--

zum Seitenanfang zum Seitenende Profil || Suche
001
05.01.2002, 16:33
terrorgen



wenn du Microsoft VB 6.0 hast dann kann man da auch noch tools mit installieren. solltest du das event. schon gemacht haben such mal nach dem "verpackungs und weitergabeassistenten" in deinem startmenue. müsste da bei Vb und dann Microsoft Visual Basic 6.0 Tools sein.
das teil is super praktisch das erzeugt dir nen richtig geiles installations menue für dein progi und liefert auch gleich die dlls mit.
-edit-
ups frage falsch verstanden *g* das bezog sich jetzt darauf die VB runtimes
mitzuliefern

aber um dlls einzubinden musst du im menue oben auf Projekt und dann Verweise gehen da auf dursuchen und dann suchste dir deine dll aus und fertig is. wenn du auf F2 drückst kannst du dir sogar die befehle in den dlls angucken

--

- alle Angaben sind wie immer ohne Gewähr


Dieser Beitrag wurde am 05.01.2002 um 16:37 von terrorgen bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
002
06.01.2002, 11:37
Ferdi



für statische Anbindung .. siehe oben (2.ter Teil)
für Dynamische Anbindung:

Quellcode:

Sub Irgendwas()
Dim m_LinkedObject as Object

On Error GoTo errLtPl

Set m_LinkedObject = CreateObject([color="#0000FF"]<DLL-Name>[/color]  & ".[color="#0000FF"]<Klassen-Name>[/color]")
'(z.B Set m_LinkedObject = CreateObject(SysPlugin & ".CMain"))

m_LinkedObject.[color="#0000FF"]<Function>[/color]
'(z.  m_LinkedObject.GetSysInfo )

Set m_LinkedObject = Nothing

Exit Sub
errLtPl:
    If Err.Number = 429 Then
        RunShell ("regsvr32 /s " & [color="#0000FF"]<DLL-Pfad>[/color])
        Err.Clear
        Resume
    End If

End Sub

wichtig ist dass die DLL Komponente vor der Benutzung regestriert sein muss ist dies nicht geschehen wird ein Fehler mit der Nummer 429 ausgelöst...
in dem obigen Code wird dann die Regestrierung gleich vorgenommen.
(Vorsicht...wenn die regestrierung Fehlschlägt kann es zu einer Endlosschleife kommen)

Anm.:
Runshell wäre in meinem Fall gleich:

Quellcode:

Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Const PROCESS_QUERY_INFORMATION = &H400
Const STATUS_PENDING = &H103&

Public Sub RunShell(cmdline$)
Dim hProcess As Long
Dim ProcessId As Long
Dim exitCode As Long
Dim r As Long

    ProcessId& = Shell(cmdline$, 1)
    hProcess& = OpenProcess(PROCESS_QUERY_INFORMATION, False, ProcessId&)
    Do
        Call GetExitCodeProcess(hProcess&, exitCode&)
        DoEvents
    Loop While exitCode& = STATUS_PENDING
    If exitCode& <> 0 Then
        MsgBox "Error Registering: " & cmdline$, vbExclamation, "ERROR"
    End If
    r = CloseHandle(hProcess)
End Sub

--


Dieser Beitrag wurde am 06.01.2002 um 11:38 von Ferdi bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
003
07.01.2002, 19:35
OBT



hmm also irgendwie bring ich das jetzt schon zusammen also gut thx !! cu OBT

--

zum Seitenanfang zum Seitenende Profil || Suche