001
25.08.2003, 13:09 Uhr
Pablo
Supertux (Operator)
|
Es funktioniert wie bei den Aufrufen von API Funktionen. In Prinzip handelt sich um dasselbe. Wie du die Funktion in VC++ weiß ich wirklich nicht, weil ich nie eine gemacht habe, aber es ist notwendig (meiner Meinung nach), dass DllMain() deklariert ist.
Du öffnest am besten ein neues BAS Modul (.BAS Datei) und fügst ganz oben hinzu:
Visual Basic: |
Option Explicit Declare Sub [b]NameDerFunktion[/b] Lib "[b]datei.dll[/b]" ([[b]Parameter[/b]]) [As Long]
|
Ob es einen Rüchgabetyp geben muss, hängt von der C++ Funktion ab, ob sie void oder nicht void ist.
In den Parametern musst du entweder byRef oder byVal hinzufügen. Wenn die C++ Funktion nur den Wert braucht, bsp: int f(int z); dann ist das Parameter in VB byVal i As String. Wenn aber ein Pointer oder Referenz erfordelich ist, byRef. Bsp: int f(int& z, int* p); Die Parameter in VB sind byRef z As Integer, byRef p As Integer
Für deine Funktionen würde ich so deklarieren:
Visual Basic: |
Option Explicit Declare Sub get_version Lib "mylib.dll" () As String Declare Sub get_FileName Lib "mylib.dll" (byRef suchstring As String, byRef pfad As String) As String
|
Das funktioniert genau dann, wenn die DLL Datei mylib.dll heißt. Solltest du eine Funktion einbinden, deren Namen schon in VB gibt, kannst du den Namen ändern, indem du vor Lib Alias "neuer Name der Funktion" hinzufügst. -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth! Dieser Post wurde am 25.08.2003 um 13:10 Uhr von Pablo Yanez Trujillo editiert. |