Re: Callback in VC++ für einen VB6-Client
- From: "SvenC" <SvenC@xxxxxxxxxxxxxxxx>
- Date: Thu, 5 Apr 2007 08:33:36 +0200
Hi Sebastian,
"Sebastian Lange" <SebastianLange@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message news:738C66E6-CA9E-42CC-A221-541B2E85186B@xxxxxxxxxxxxxxxx
Die Frage betrifft sowohl VC++ als auch VB6, da ich aber doppelte
Postings selbst nicht leiden kann versuche ich mein Glück einfach hier.
Ich habe eine DLL die ich in VC++ 6 entwickle
und einen Testclienten der von mir in VB6 entwickelt wird.
Nun möchte ich in die DLL ein Callback-Verfahren implementieren
und genau da hakt es. Wenn ich das Verfahren ohne Parameter für
die Callback-Funktion implementiere geht (augenscheinlich) alles gut.
Das ganze sieht dann so aus:
// C++ Bereich der DLL
typedef long (*DUMYCALLBACK)(); // Funktionszeiger ohne Parameter
Dein Callback muss auch __stdcall nutzen. Ohne Parameter fällt der Unterschied nicht auf.
typedef long (__stdcall *DUMMYCALLBACK)(); // Funktionszeiger ohne Parameter
typedef long (__stdcall *DUMMYCALLBACK2)(long mitParam); // Funktionszeiger mit Parameter
'''' VB Client '''
Public Declare Function CallbackTest Lib "MyLib.dll" (ByVal lAdress As Long)
As Long
'Der Aufruf an die DLL
Private Sub Command1_Click()
CallbackTest AddressOf MyClientVBFunction
End Sub
'' Diese Funktion wird von der DLL als Callback zurückgerufen
'' Kein Parameter
Public Function MyClientVBFunction() As Long
Debug.Print "MyClientVBFunction as callback from the DLL called"
End Function
Falls es trotzdem nicht geht, dann würde ich Deine Callback-Funktion mal in ein bas-Modul auslagern. Ich weiß nicht, ob Member-Funktionen von Klassen und Formularen beim AdressOf identische Funktionszeiger erzeugen, wie eine globale Funktion aus einem bas.
--
SvenC
.
- References:
- Callback in VC++ für einen VB6-Client
- From: Sebastian Lange
- Callback in VC++ für einen VB6-Client
- Prev by Date: Re: double und long double in VC2005
- Next by Date: Re: Client Process ermitteln
- Previous by thread: Re: Callback in VC++ für einen VB6-Client
- Next by thread: Client Process ermitteln
- Index(es):
Relevant Pages
|