title image


Smiley Re: mit vb eine dll ansprechen und es klappt nicht
Hallo Fred,



ich hatte das vor ca 2 Jahren einmal durchgezogen und versuche nun, die Vorgehensweise wiederzugeben.



Zunächst einmal handelt es sich bei Deiner DLL nicht um eine ActiveX/COM DLL.

Deshalb kann sie auch nicht registriert und per "Verweise" referenziert werden.

Damit liegt also HenryF falsch.



Dann muß eine in C geschriebene DLL nicht der Aufrufkonvention __declspec folgen, sondern __stdcall, da declspec inkompatibel zu VB ist.

Nicht zuletzt aus diesem Grunde folgen z.B. fast alle WinAPI DLLs der __stdcall - Aufrufkonvention.



Wenn Du die DLL dann kompiliert hast, solltest Du mit Dependency Walker überprüfen, ob die DLL-Einsprungpunkte exportiert wurden und ob sich der Name möglicherweise geändert hat.

Soweit ich mich erinnere, unterscheidet sich der Name des Einsprungpunktes, also der Name, den Du in VB deklarieren mußt, um einen Unterstrich (_) von dem Originalen Namen in C.

Möglicherweise mußt Du die Einsprungpunkte expilizit exportieren (so hatte ich es damals gemacht), indem Du in deiner C++ Arbeitsmappe eine *.def - Datei hinzufügst, die etwa

folgenden Inhalt haben sollte:



; codec.def : Deklariert die Modul-Parameter für die DLL.



LIBRARY "codec"

DESCRIPTION 'Meine tolle DLL zur Verwendung in Visual Basic'



EXPORTS

; Explizite Exporte können hier eingefügt werden

simple @1



Weitere Infos findest Du in der Microsoft-Knowledge Base unter "Q106553: HOWTO: Write C DLLs and Call Them from Visual Basic"



Viel Erfolg!

Thomas Prötzsch

cu


Thomas Prötzsch

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: