Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature currently requires accessing the site using the built-in Safari browser.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Diskutiere ActiveDLL mit VB verwenden im Webentwicklung, Hosting & Programmierung Forum im Bereich Netzwerk & Internet; Hi,
ich versuche im Moment ein DLL mit VB zu verwenden.
Ich hab nur ein Problem. Es kommt immer folgender Fehler:
Hier ist mal mein Quelltext...
#1
K
killer-Trekkie
Bekanntes Mitglied
Themenersteller
Dabei seit
28.10.2003
Beiträge
145
Reaktionspunkte
0
Hi,
ich versuche im Moment ein DLL mit VB zu verwenden.
Ich hab nur ein Problem. Es kommt immer folgender Fehler:
Laufzeitfehler->453':
DLL-Einsprungpunkt funcSpeichern in C:\Dokumente und Einstellungen\Jul\Desktop\Speichern.dll nicht gefunden
Public Sub funcSpeichern(Pfad As String, Daten As String)
Open Pfad For Output As #1
Print #1, Daten
Close #1
End Sub
Exe:
Code:
Private Declare Function talSpeichern Lib C:\Dokumente und Einstellungen\Jul\Desktop\Speichern.dll Alias funcSpeichern (Pfad As String, Daten As String)
Private Sub Command1_Click()
Call talSpeichern(Text1.Text, Text2.Text)
End Sub
mfg
killer-Trekkie
#2
S
Spazz
Bekanntes Mitglied
Dabei seit
04.07.2002
Beiträge
278
Reaktionspunkte
0
Ort
WEN
HI,
also eigentl. hab ich net so viel Erfahrungen mit .dll´s aber ich muss sagen, dass der Code eigentlich sehr logisch aussieht!
Also fangen wir einfach an...die dll liegt auch wirklich in dem Verzeichnis? ;O)
#3
K
killer-Trekkie
Bekanntes Mitglied
Themenersteller
Dabei seit
28.10.2003
Beiträge
145
Reaktionspunkte
0
Ja das ist schon im richtigen Pfad. Außerdem käme ja dann die Fehlermeldung: Dll nicht gefunden.
mfg
killer-Trekkie
#4
F
Fizbin
Bekanntes Mitglied
Dabei seit
09.07.2003
Beiträge
220
Reaktionspunkte
0
Kenn mich mit den VB-DLLs nicht aus, aber Google mal nach Moduldefinitionsdatei (*.def). Braucht man zumindest bei C-DLLs um die Funktionen unter einem (nicht kryptischen) Namen zu erreichen.
#5
K
killer-Trekkie
Bekanntes Mitglied
Themenersteller
Dabei seit
28.10.2003
Beiträge
145
Reaktionspunkte
0
Bracuht man nicht. da ich schon Codes gesehen hab wo z.B. die kernel32.dll ohne so was benutzt wurde.
mfg
killer-Trekkie
#6
A
Alexander16
Bekanntes Mitglied
Dabei seit
26.08.2002
Beiträge
473
Reaktionspunkte
0
Hi
Code:
Private Declare Function talSpeichern Lib C:\Dokumente und Einstellungen\Jul\Desktop\Speichern.dll Alias funcSpeichern (Pfad As String, Daten As String)
Eigentlich sollte es so aussehen ...
Code:
Private Declare Sub talSpeichern Lib C:\Dokumente und Einstellungen\Jul\Desktop\Speichern.dll Alias funcSpeichern (Pfad As String, Daten As String)
... weil bei deiner DLL kein Rückgabewert zurück kommt, wie bei einer Function.
PS: Erstell dir lieber eine richtige DLL-Datei mit VB
Mfg Alexander
#7
F
Fizbin
Bekanntes Mitglied
Dabei seit
09.07.2003
Beiträge
220
Reaktionspunkte
0
Bracuht man nicht. da ich schon Codes gesehen hab wo z.B. die kernel32.dll ohne so was benutzt wurde.
Die Kernel32 wurde ziemlich sicher mit einer Moduldefinitionsdatei kompiliert, ansonsten wären die Funktionen nicht unter so einfachen Namen ansprechbar.
Das der Dll-Einstiegspunkt nicht gefunden werden kann, liegt daran das die FUNKTION nicht unter dem Namen gefunden werden kann.
Ich kann leider nur bei C-Dlls mitreden, dort muss man die Funktion nach aussen erreichbar machen (Schlüsselwort: _declspec(dllexport)), das Schlüsselwort _stdcall in die Funktion einfügen und eine *.def schreiben, damit die Funktion ,trotz der _stdcall-Konvention, wieder unter einem vernünftigen Namen erreichbar ist.
Gruß Fizbin
#8
K
killer-Trekkie
Bekanntes Mitglied
Themenersteller
Dabei seit
28.10.2003
Beiträge
145
Reaktionspunkte
0
Und was muss ich machen um eine Function die mir z.B. zwei Zahlen addiert in einer DLL in ein EXE einzufügen (So dass in der DLL die beiden Zahlen addiert werden)?
mfg
killer-Trekkie
#9
F
Fizbin
Bekanntes Mitglied
Dabei seit
09.07.2003
Beiträge
220
Reaktionspunkte
0
Hab mir eben kurz mal ActiveX-DLLs angeschaut. Diese DLLs (in Process Server) bestehen zwingend aus Klassen die ihre Methoden und Eigenschaften haben. Diese müssen äusserst fehlertolerant programmiert sein.
Der Server (die DLL)
myServer.cls
Code:
property Get myName()
myName=Server
unload me
end property
Über ->Projekt->Verweise die dll für den Client nutzbar machen
client (.exe)
Code:
dim k as new myServer
k.myName
set k = nothing
So ungefahr sollte es klappen. Für die o.g. Codebeispiele ist es allerdings witzlos eine ActiveX-Dll zu programmieren. Wahrscheinlich bist Du mit einem Modul, oder maximal einem benutzerdefinierten Steuerelemt, ersteinmal besser bedient. Was willst Du den mit der ActiveX-dll genau anfangen????
#10
K
killer-Trekkie
Bekanntes Mitglied
Themenersteller
Dabei seit
28.10.2003
Beiträge
145
Reaktionspunkte
0
Im ersten Moment wars einfach mal Neugier aber ich will Code vereinfachen und mir manche Funktionen aus dem weg schaffen udn für mehrere Programme zugänglich machen. Eigentlich ist die DLL doch wie ein Modul oder irr ich mich da?
mfg
killer-Trekkie
#11
F
Fizbin
Bekanntes Mitglied
Dabei seit
09.07.2003
Beiträge
220
Reaktionspunkte
0
Hallo.
Dann meld ich mich nochmal und versuche die Frage zu beantworten.
Eine (ActiveX)- DLL ist etwas anderes als ein Modul. Auch kann man ActiveX-Dll und normale Dll nicht gleichsetzen.
Wenn Du Dir Code aus dem Weg räumen willst nimm ein Modul, oder in vielen Fällen besser: ein Klassenmodul.
Wofür man sich im Endeffekt entscheidet ist grösstenteils abhängig von der Planung. Und als Programmierer hat man ja auch immer noch etwas Freiraum
ActiveX-Dlls benutzt man nur in speziellen Fällen; auf jeden Fall sollte man für das Schreiben einer ActiveDll, den Umgang mit Klassen beherschen.