VB: Dll Aufruf mit Syntaxfehler

Diskutiere VB: Dll Aufruf mit Syntaxfehler im Developer Network Forum im Bereich Hardware & Software Forum; Hi! Ich habe jetzt eine DLL mit Declare Sub eingebaut! Nur, wenn ich sie jetzt aufrufen will, mit call dllname,,,(parameter1, parameter2)...
  • VB: Dll Aufruf mit Syntaxfehler Beitrag #1
A

AlexK

Bekanntes Mitglied
Dabei seit
08.10.1999
Beiträge
1.475
Reaktionspunkte
0
Ort
a city next to you :)
Hi!

Ich habe jetzt eine DLL mit Declare Sub eingebaut! Nur, wenn ich sie jetzt aufrufen will, mit call dllname,,,(parameter1, parameter2) funktioniert es nicht! Syntaxfehler! Da ich aber leider die MSDN Sammlung nicht habe (da ist die HIlfe bei der Developer Version mit drinnen), weiß ich nicht, was ich falsch gemacht habe...

Vielleicht könnte mir das mal einer/eine sagen!

Danke!

Alex
 
  • VB: Dll Aufruf mit Syntaxfehler Beitrag #2
M

McTOM

Bekanntes Mitglied
Dabei seit
07.01.2000
Beiträge
134
Reaktionspunkte
0
hi alex

hätte nicht gedacht, dich einmal hier zu treffen (oder ist das auch zufall).

poste mal den declare und den aufruf, vielleicht kann ich dir dann helfen.

McTOM
 
  • VB: Dll Aufruf mit Syntaxfehler Beitrag #3
M

McTOM

Bekanntes Mitglied
Dabei seit
07.01.2000
Beiträge
134
Reaktionspunkte
0
1. declare müßte so ausschauen:
Declare Sub NameDerFunktion Lib "DLL-Name" (ByVal Param1 As Any, ByVal Param2 As Any, Param3 As Any)

2. beim aufruf gibst du nicht die richtigen parameter lt. declare an: was sollen die ersten drei beistriche? du mußt aufjedenfall was in die funktion mitgeben und sei es nur immer die gleiche dummy-variable. außerdem kannst du nicht die ersten params nicht und die letzten params schon klammern.
der aufruf der funktion lautet dann:
call NameDerFunktion(Param1, Param2, Param3)

McTOM
 
  • VB: Dll Aufruf mit Syntaxfehler Beitrag #4
M

McTOM

Bekanntes Mitglied
Dabei seit
07.01.2000
Beiträge
134
Reaktionspunkte
0
noch vergessen:

das file für die declarationen müßte aber bei vb dabei sein. heißt 'Win32api.txt'.

falls nicht, kannste von mir haben.

McTOM
 
  • VB: Dll Aufruf mit Syntaxfehler Beitrag #5
A

AlexK

Bekanntes Mitglied
Dabei seit
08.10.1999
Beiträge
1.475
Reaktionspunkte
0
Ort
a city next to you :)
Ich weiß jetzt nicht, welches File Du meinst!

Aber ich probiere es mal so!

Danke!

Alex
 
  • VB: Dll Aufruf mit Syntaxfehler Beitrag #6
A

AlexK

Bekanntes Mitglied
Dabei seit
08.10.1999
Beiträge
1.475
Reaktionspunkte
0
Ort
a city next to you :)
Ok, das geht jetzt!

Nur jetzt kommt folgende Fehlermeldung:
DLL-Einsprungpunkt "namedenichangegebenhabe" in "dllname" nicht gefunden!

Die DLL habe ich von einem C-Quelltext mit Visual C++ 6 compiliert!

Kennt da einer was?

Thx

Alex
 
  • VB: Dll Aufruf mit Syntaxfehler Beitrag #7
M

McTOM

Bekanntes Mitglied
Dabei seit
07.01.2000
Beiträge
134
Reaktionspunkte
0
hi alex

wird ja zum dialog von uns hier :D

wenn du visual c++ installiert hast, hast du sicher auch den dependency-walker drauf.
damit kannst du dir die dll, die parameter und die ganzen abhängigkeiten ansehen. müßte aber auch mit quickview plus funktionieren (da sind aber glaube ich keine parameter aufgelistet).

McTOM
 
  • VB: Dll Aufruf mit Syntaxfehler Beitrag #8
A

AlexK

Bekanntes Mitglied
Dabei seit
08.10.1999
Beiträge
1.475
Reaktionspunkte
0
Ort
a city next to you :)
Ich habe keines von beiden!

Muß ich die DLL anders compilieren?

Naja, wenn es dann bei VB aufhört und bei C/C++ teilen und DLLs anfängt, da sehe ich dann ganz schön alt aus!

Alex
 
  • VB: Dll Aufruf mit Syntaxfehler Beitrag #9
A

AlexK

Bekanntes Mitglied
Dabei seit
08.10.1999
Beiträge
1.475
Reaktionspunkte
0
Ort
a city next to you :)
Fehler: Ich habe diesen Walker doch drauf...und der sagt, dass keine EntryPoint defeniert sind...

Ich nehme an, dass ich das vor dem compilieren machen muss...

Alex
 
  • VB: Dll Aufruf mit Syntaxfehler Beitrag #10
A

AlexK

Bekanntes Mitglied
Dabei seit
08.10.1999
Beiträge
1.475
Reaktionspunkte
0
Ort
a city next to you :)
Declare Sub namederdll "c:\irgendwas.dll" (Byval paramname, byvalparamnae, free as long)

dann:

call "namederdll",,,(parameter1, parameter2)

Und wieso geht das nicht?

Alex
 
  • VB: Dll Aufruf mit Syntaxfehler Beitrag #11
M

McTOM

Bekanntes Mitglied
Dabei seit
07.01.2000
Beiträge
134
Reaktionspunkte
0
hi alex

hat leider etwas länger gedauert.

also wie du die dll mit c++ compilieren mußt kann ich dir leider nicht sagen (ist schon ewig her daß ich c++ programmiert habe und da auch 'nur' auf mac).
aber es ist sehr wahrscheinlich, daß du die dll-funktionen so declaren mußt, daß sie öffentlich (public) sind. aber wie das geht, kann ich dir leider auch nicht sagen! ==> mal TT fragen, der scheint auf diesem gebiet kompetent zu sein!

McTOM
 
  • VB: Dll Aufruf mit Syntaxfehler Beitrag #12
A

AlexK

Bekanntes Mitglied
Dabei seit
08.10.1999
Beiträge
1.475
Reaktionspunkte
0
Ort
a city next to you :)
TT! Hallo!

Kannst Du mir helfen?
 
  • VB: Dll Aufruf mit Syntaxfehler Beitrag #13
yks

yks

Bekanntes Mitglied
Dabei seit
21.01.1999
Beiträge
551
Reaktionspunkte
0
Ort
Hamburg
Hi AlexK,

wenn Funktionen in C(++) von einer DLL exportiert werden sollen, muß du
- eine .DEF Datei erzeugen ( siehe Online-Help von VC++) oder
- ein Schlüsselwort vor die Funktionsdeklaration setzen [ ich glaube __decspecl(export) oder so änlich]

Erst dann sind die DLL-Funktionen Public und können aufgerufen werden.

Ach ja, wenn du C++ und die Klassen ( besonders den MFC-Klassen) benutzt wird das ganze leider wesentlich komplizierter.

Am besten du guckst in der Online-Hilfe von VC++ nochmal unter DLL erstellen nach ( ich hoffe du hast nicht nur die Standardausgabe von VC++)

...yks
 
  • VB: Dll Aufruf mit Syntaxfehler Beitrag #14
A

AlexK

Bekanntes Mitglied
Dabei seit
08.10.1999
Beiträge
1.475
Reaktionspunkte
0
Ort
a city next to you :)
Nein, ich habe leider die Online-Hilfe nicht...aber aus anderen Gründen!

Vielleicht könnte mir einer den Text der dort steht einmal zumailen?

Danke!

Alex
 
  • VB: Dll Aufruf mit Syntaxfehler Beitrag #15
yks

yks

Bekanntes Mitglied
Dabei seit
21.01.1999
Beiträge
551
Reaktionspunkte
0
Ort
Hamburg
Hi nochmal,

deklariere deine Funktionen in C wie folgt :

void __declspec(dllexport) NameDerProzedure( long lParam1, ...);

oder

long __declspec(dllexport) NameDerFunktion( long lParam1, ...);


In C++ setzt du in der Headerdateie über alle Deklarationen nochmal über alles ein

extern "C" {
...
}
(siehe antwort von O Lobe)

Nach dem Kompilieren und Linken schau nochmal mit dem 'Walker' rein. Die Funktionen sind nun exportiert und damit Public.


...yks :)


PS : Tut mir leidt, das Thema in der Online-Hilfe teilt sich auf jede Menge unterschiedlicher Seiten auf, da werde ich nicht helfen können.
 
  • VB: Dll Aufruf mit Syntaxfehler Beitrag #16
A

AlexK

Bekanntes Mitglied
Dabei seit
08.10.1999
Beiträge
1.475
Reaktionspunkte
0
Ort
a city next to you :)
void __declspec(dllexport) gen1(long param1, long param2);

Diesen Aufruf habe ich vor den Quelltext eingesetzt und dann als DLL compiliert...aber dieser Walker zeigt trotzdem keine EntryPoints an!

Machn ich was falsch?

Danke schonmal!

Alex
 
Thema:

VB: Dll Aufruf mit Syntaxfehler

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.174
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben