{erledigt - siehe unten}
Ich habe eine Frage zum selben Thema:
Ich arbeite an einer *.dll, die eine Mehtode enthält, welche später von 2 Threads aufgerufen wird. Das Problem ist, dass einige Anweisungen nicht mit kompiliert werden:
Delphi-Quellcode:
library Thread;
uses
SysUtils,
Classes,
Graphics;
type
TThreadParams = packed record
public
Center_x, Center_y, Range_x, Range_y, MaxValue, dx, dy: extended;
MaxIterations, Counter: integer;
Bitmap: TBitmap;
end;
PThreadParams = ^TThreadParams;
{$R *.res}
function ThreadFunc(Params: PThreadParams): Cardinal;
var
fBitmap: TBitmap;
fMaxIterations, fCounter: integer;
fCenter_x, fCenter_y, fRange_x, fRange_y, fMaxValue, fdx, fdy: extended;
begin
// Parameter auslesen
fCounter:=PThreadParams(Params)^.Counter; // wird kompiliert
fdx:=PThreadParams(Params)^.dx;
fdy:=PThreadParams(Params)^.dy;
fCenter_x:=PThreadParams(Params)^.Center_x;
fCenter_y:=PThreadParams(Params)^.Center_y;
fRange_x:=PThreadParams(Params)^.Range_x;
fRange_y:=PThreadParams(Params)^.Range_y;
fMaxIterations:=PThreadParams(Params)^.MaxIterations;
fMaxValue:=PThreadParams(Params)^.MaxValue;
fBitmap:=PThreadParams(Params)^.Bitmap; // wird kompiliert
//[...]
end;
exports
ThreadFunc;
begin
end.
Von den 10 Zeilen Code in der function werden nur 2 mit kompiliert: fCounter und fBitmap. Weiß jemand, woran das liegen könnte?
edit: Im Kontext mit meinem Programm/Thread gibts da wohl noch mehr Probleme. fCounter sollte 0 oder 1 sein, ist aber 1073383560 -.-
Das ändert natürlich nichts dran, dass die vielen Zeilen beim Kompilieren nicht beachtet werden...
Okay, lag an mir. Ich hatte den Rest der function zum debuggen auskommentiert, da wurden dann auch die Zuweisungen nicht mehr mitkompiliert (
Varaible never used)