Einzelnen Beitrag anzeigen

schwa226

Registriert seit: 4. Apr 2008
400 Beiträge
 
#1

DLL Messagequeue

  Alt 18. Mär 2011, 06:40
Guten Morgen!

Ich hänge mal wieder mit einer umsetzung von C++ nach Delphi.
Und zwar habe ich nach diesem Demos:
http://www.infinityusb.com/default.a...&DownloadID=43

die INFSMART.PAS erzeugt.

In der Demo werden diese Funktionen in einer Anwendnung mit einer Form benutzt.
Ich möchte es aber in einer DLL benutzen die keine Form hat.

Das Problem ist, dass die DLL nun bei dem Aufruf von
Delphi-Quellcode:
TINFSMART_OpenDeviceFromNum = function (dwDevice: DWORD;
                                    hDevice: PDWORD;
                                    lpDeviceString: PAnsiChar): SDK_STATUS; stdcall;
stehen bleigt und nicht zurückkommt.


Die Funktion vorher
TINFSMART_GetNumDevices = function (lpdwNumDevices: PDWORD): SDK_STATUS; stdcall; geht noch ohne Probleme.

Die Demo läuft die ganze Zeit in dieser Funktion und arbeitet die Messagequeue ab:
Code:
   // Main message loop:
   while (GetMessage(&msg, NULL, 0, 0))
   {
      if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
      {
         TranslateMessage(&msg);
         DispatchMessage(&msg);
      }
   }
Wie kann ich das am einfachsten in einer Delphi DLL verwirklichen?
Delphi 2010, Update 4 & 5
  Mit Zitat antworten Zitat