Re: Interop: Callbacks und Event Raising?

Tech Tip: Click here to run a free scan for Windows Errors and optimize PC performance



> Die DLL ist schon als STDCALL definiert.

was heisst dies? (ich meinte konkret den Callback, nicht die APIs)
Damit Callbacks wirklich per _stdcall arbeiten, muss
- entweder per Compiler-Switch der C++ DLL explizit __stdcall voreingestellt worden sein,
- oder direkt bei der Callback Fn-Definition (im .H) ein __stdcall stehen
(oder irgend eine Ableitung davon, etwa Win32 macros: CALLBACK oder WINAPI o.ä.)



> meist nach dem Prinzip ErstelleHandle, ZerstöreHandle.
> Nun bekommt aber jenes ErstelleHandle die Callback mit.
> Da die Aktion nun im Konstruktor stattfindet, kann man da auch keine
> Events abfangen. Soweit so logisch, schließlich kann ich nicht
> die Ereignisse von etwas überwachen, was es noch gar nicht gibt.
> Nur wie sieht hierzu ein passendes Designpattern aus?
> Zur Zeit habe ich es gelöst, indem ich das Erstellen in eine Initialize
> Methode gepackt habe.

ich würde eher vermuten, es bleibt dir da wohl nicht viel anderes übrig
als eben irgend eine Art Initialize() oder Open() usw.


> Nun muß ich aber jede Methode mit einer Abfrage
> bezüglich eines gültigen Handles beginnen

im Prinzip musst du dies mit dem IDisposable-Pattern sowieso,
es könnte ja jemand auch Dispose() aufgerufen haben
und danach trotzdem noch weiter Methoden aufrufen...



--
Thomas Scheidegger - MVP .NET - 'NETMaster'
http://www.cetus-links.org/oo_dotnet.html - http://dnetmaster.net/


.



Relevant Pages

  • Re: SendMessageCallback or Alternative Example
    ... When I first compile the code like the way your example code is, ... callback function as __stdcall but problem still exist. ... LRESULT lResult) ...
    (microsoft.public.vc.mfc)
  • Re: Need to use a DLL with callback function in VB6, how?
    ... Now I can call the function to set the callback pointer and I ... are you sure this DLL is "compatible" with VB6? ... And I have used the stdcall directive in Delphi wherever I could to ... Declare Sub SetCallbackProcedure Lib "Dll1" ...
    (microsoft.public.vb.winapi)
  • Re: recompile a DLL with _stdcall for VB
    ... Microsoft MVP, MCSD ... __stdcall myFunctionwould be enough but I am wrong. ... BOOL DLLEXPORT readyToStartCallback(void (CALLBACK* lpfnReadCallback) ... void CALLBACK TimerProc(HWND hWnd, UINT nMsg, UINT nIDEvent, DWORD ...
    (microsoft.public.vc.language)
  • Re: SendMessageCallback or Alternative Example
    ... callback function as __stdcall but problem still exist. ... LRESULT lResult) ... int somefunction (HWND hwndToSendMessageTo) ...
    (microsoft.public.vc.mfc)
  • Re: Welche IPC
    ... Wenn die Messages, die Du da verschickst, länger als ... > dann auch ausgelesen habe wird der Callback immernoch ... Prev by Date: ... Next by Date: ...
    (de.comp.os.unix.programming)