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
--
|
|
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.
|
|
Profil || Suche
|
002
06.01.2002, 11:37
Ferdi
|
für statische Anbindung .. siehe oben (2.ter Teil) für Dynamische Anbindung:
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:
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.
|
|
Profil || Suche
|
003
07.01.2002, 19:35
OBT
|
hmm also irgendwie bring ich das jetzt schon zusammen also gut thx !! cu OBT
--
|
|
Profil || Suche
|