Einzelnen Beitrag anzeigen

Benutzerbild von Delphi-Narr
Delphi-Narr

Registriert seit: 29. Aug 2009
Ort: Duisburg
437 Beiträge
 
Delphi 2007 Professional
 
#11

AW: MouseOver Sorgt für Programm Crash

  Alt 25. Apr 2014, 16:36
Ich verwende derzeit nur 2 eigene DLLs neben der LogitechG19 DLL.
Die Aufrufkonventionen sehen alle in Ordnung aus (Alle Aufrufe erfolgen aus der AppClass.pas und sind in der G19Const.pas festgelegt).

Beim vollständigen Rebuild kommen folgende Warnungen:
Arduino_led.dll:
Code:
[DCC Warnung] GR32_VectorMaps.pas(256): W1024 Vorzeichenbehaftete und -lose Typen werden kombiniert - beide Operanden werden erweitert
[DCC Warnung] GR32_VectorMaps.pas(257): W1024 Vorzeichenbehaftete und -lose Typen werden kombiniert - beide Operanden werden erweitert
[DCC Warnung] GR32_VectorMaps.pas(257): W1024 Vorzeichenbehaftete und -lose Typen werden kombiniert - beide Operanden werden erweitert
[DCC Warnung] LBUtils.pas(484): W1000 Symbol 'FileAge' ist veraltet
[DCC Warnung] LBUtils.pas(486): W1000 Symbol 'FileAge' ist veraltet
[DCC Warnung] LEDThread.pas(13): H2219 Das private-Symbol 'tR' wurde deklariert, aber nie verwendet
[DCC Warnung] LEDThread.pas(13): H2219 Das private-Symbol 'tG' wurde deklariert, aber nie verwendet
[DCC Warnung] LEDThread.pas(13): H2219 Das private-Symbol 'tB' wurde deklariert, aber nie verwendet
[DCC Warnung] arduino_led.dpr(41): H2164 Variable 'HTTPServer' wurde deklariert, aber in 'arduino_led' nicht verwendet
wobei FileAge in einer Methode vorkommt, die nicht verwendet wird und HTTPServer nur auskommentiert, da für später geplant. Die Variablen tR,tG und tB hab ich entfernt.

audio.dll:
Code:
[DCC Warnung] GR32_VectorMaps.pas(256): W1024 Vorzeichenbehaftete und -lose Typen werden kombiniert - beide Operanden werden erweitert
[DCC Warnung] GR32_VectorMaps.pas(257): W1024 Vorzeichenbehaftete und -lose Typen werden kombiniert - beide Operanden werden erweitert
[DCC Warnung] GR32_VectorMaps.pas(257): W1024 Vorzeichenbehaftete und -lose Typen werden kombiniert - beide Operanden werden erweitert
[DCC Warnung] AudioVolume.pas(580): H2077 Auf 'ByMyAction' zugewiesener Wert wird niemals benutzt
Hauptprogramm:
Code:
[DCC Warnung] GR32_VectorMaps.pas(256): W1024 Vorzeichenbehaftete und -lose Typen werden kombiniert - beide Operanden werden erweitert
[DCC Warnung] GR32_VectorMaps.pas(257): W1024 Vorzeichenbehaftete und -lose Typen werden kombiniert - beide Operanden werden erweitert
[DCC Warnung] GR32_VectorMaps.pas(257): W1024 Vorzeichenbehaftete und -lose Typen werden kombiniert - beide Operanden werden erweitert
[DCC Warnung] MainController.pas(43): H2219 Das private-Symbol 'SetLED' wurde deklariert, aber nie verwendet
Wobei SetLED auch nur für die Zukunft schon eingeführt wurde, aber noch keine Funktion erfüllt.

Hier noch die Aufrufkonventionen, die von der G19Const.pas vorgegeben werden:
Delphi-Quellcode:
// DLL Functions
  TInitFunction = function(dllpath:WideString):Boolean; stdcall;
  TUpdateFunction = function(displayed:Boolean; ledcontroller:Boolean; interval:integer):Boolean; stdcall;
  TGetLEDFunction = function(currentcolor:TLEDColor):TLEDColor; stdcall;
  TGetScreenFunction = function:TPixelArray; stdcall;
  TGetWantLEDControllFunction = function():Boolean; stdcall;
  TBtnDownFunction = function(btn:integer):Boolean; stdcall;
  TBtnPressedFunction = function(btn:integer;ms:integer):Boolean; stdcall;
  TBtnUpFunction = function(btn:integer;ms:integer):Boolean; stdcall;
  TExitFunction = function():Boolean; stdcall;

 // Callbacks - global storage system
  TcbSetFloat=function(name:WideString;value:real):Boolean; stdcall;
  TcbGetFloat=function(name:WideString):real; stdcall;
  TcbSetInt=function(name:WideString;value:integer):Boolean; stdcall;
  TcbGetInt=function(name:WideString):integer; stdcall;
  TcbSetWideString=function(name:WideString;WideString:WideString):Boolean; stdcall;
  TcbGetWideString=function(name:WideString):WideString; stdcall;
  TcbSetByte=function(name:WideString;value:Byte):Boolean; stdcall;
  TcbGetByte=function(name:WideString):Byte; stdcall;

  // Callback Declaration
  TSetGlobalStorageFunction = procedure(setFloat: TcbSetFloat; getFloat:TcbGetFloat; setInt:TcbSetInt; getInt:TcbGetInt; setPChar:TcbSetWideString; getPChar:TcbGetWideString; setByte:TcbSetByte; getByte:TcbGetByte); stdcall;
und hier die, die von der Arduino_led.dll verwendet werden:

Delphi-Quellcode:
procedure setglobalstorage(setFloat: TcbSetFloat; getFloat:TcbGetFloat; setInt:TcbSetInt; getInt:TcbGetInt; setWideString:TcbSetWideString; getWideString:TcbGetWideString; setByte:TcbSetByte; getByte:TcbGetByte); stdcall;

function init(dllpath:WideString):Boolean; stdcall;
function exit():Boolean; stdcall;
function tick(displayed:Boolean; ledcontroller:Boolean; interval:integer):Boolean; stdcall;
function getled(currentcolor:TLEDColor):TLEDColor; stdcall; // Bisher nie aufgerufen!
function getscreen:TPixelArray; stdcall;
function getwantledcontroll:Boolean; stdcall;
function btndown(btn:integer):Boolean; stdcall;
function btnpressed(btn:integer;ms:integer):Boolean; stdcall;
function btnup(btn:integer;ms:integer):Boolean; stdcall;
  Mit Zitat antworten Zitat