Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi ReportEvent // API Parameterübergabe // array of String (https://www.delphipraxis.net/96934-reportevent-api-parameteruebergabe-array-string.html)

bepe 1. Aug 2007 22:14


ReportEvent // API Parameterübergabe // array of String
 
Hallo,

ich habe da ein kleines Problem dass ich seit 2-3 Wochen (sporadisch) versuche zu lösen aber mich nun geschlagen geben. Und zwar möchte ich nur Ereignisse loggen. So weit, so einfach:

Delphi-Quellcode:
var
  EventLog: THandle;
  Parameter: array[0..1] of String;
begin
  ...
  Parameter[0] := 'Eins';
  Parameter[1] := 'Zwei';

  ReportEvent(EventLog, EventType, CatID, MsgID, nil, 2, 0, @Parameter, nil);
  ...
end;
Das funktioniert auch tadellos. Wird aber aus "Parameter" ein dynamisches Array "versteht" Windows mich nicht mehr. Sprich aus "Eins" und "Zwei" wird "€È É ; Èö.".

Kann mir irgend jemand sagen warum das so ist?

ste_ett 3. Aug 2007 15:14

Re: ReportEvent // API Parameterübergabe // array of String
 
@Parameter ist bei einem statischen Array der Zeiger auf das erste Element.
Bei einem dynamischen ist @Parameter der Zeit auf den Zeiger auf das Array.

Versuche mal bei einem dynamischen Array @Parameter[0]. :)
Jetzt hast du wieder einen Pointer auf das erste Element.

Desoxyribonukleinsäure 3. Aug 2007 19:10

Re: ReportEvent // API Parameterübergabe // array of String
 
Hallo Bepe,
hast Du es schonmal mit einem "Array of PWideChar" probiert?

bepe 3. Aug 2007 22:20

Re: ReportEvent // API Parameterübergabe // array of String
 
Zitat:

hast Du es schonmal mit einem "Array of PWideChar" probiert?
Danke, ja. Habe unzählige Varianten durchprobiert: Statisch - OK, Dynamisch - keine Chance


Zitat:

Versuche mal bei einem dynamischen Array @Parameter[0]. :)
Treffer, versenkt :dancer2: Wenn man darüber nachdenkt..macht das schon Sinn. Aber da hätten noch einige Monate vergehen können bevor ich auf die Idee gekommen wäre. Tausend Dank.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz