Hm, frag mal bei Assarbad nach. Hier Olli oder so. Mit dem habe ich mal so was gemacht oder versucht zu machen. Link:
http://assarbad.net/
Vielen Dank Luckie, aber ich habs hingekriegt. Yeahh...
Vielen vielen Dank an Sven!
Ich bin wohl von falschen Erwartungen ausgegangen. Ich dachte, dass das
helloworld Beispiel auf Anhieb funktionieren sollte. Damit es sich kompilieren ließ, habe ich den Source folgendermaßen verändert:
Delphi-Quellcode:
program helloworld;
uses
// as WriteLn is not supported, yet, we need to
// use the functions provided by the kernel directly
NDK, NDKUtils;
type
TNtUnicodeString = UNICODE_STRING;
// using Int64 is an alternative (QWord might have unintended side effects)
TLargeInteger = packed record
case Boolean of
True:(LowPart: LongWord;
HighPart: LongInt);
False:(QuadPart: Int64);
end;
PLargeInteger = ^TLargeInteger;
var
ntstr: TNtUnicodeString;
interval: TLargeInteger;
begin
ShortStrToNtStr('Hello World!'#13#10, ntstr);
NtDisplayString(@ntstr);
FreeMem(ntstr.buffer);
// wait 3 seconds
interval.QuadPart := - 3000 * 10000;
NtDelayExecution(FALSE,@interval);
end.
Lg,
jus