2009. november 26., csütörtök
Passing String Parameters to WinAPI Functions
Problem/Question/Abstract:
I'm using the Winexec command and trying to use a string as the argument, but Winexec takes only a Pchar as its argument. I can't figure out how to put a regular string into a Pchar, or how to make a Pchar 'point' to a character string.
Answer:
WinAPI calls can be pretty confusing, huh? Let's say you have a function called WinAPICall that takes a PChar as an argument. Here are a couple of ways to make the call:
First Method (This will only work for Delphi 2.0 and above, which supports casting):
WinAPICall(PChar(MyStringVal));
Second Method:
procedure CallWinApiCall(S: string);
var
Val: string;
pVal: PChar;
begin
Val := S;
{Initialize memory for the PChar}
GetMem(pVal, Length(Val));
{Copy the contents of Val to PChar}
pVal := StrPCopy(pVal, Val);
WinAPICall(pVal);
{This next step is ABSOLUTELY necessary}
FreeMem(pVal, Length(Val));
end;
In any case, that should do it for you pretty nicely.
Feliratkozás:
Megjegyzések küldése (Atom)
Nincsenek megjegyzések:
Megjegyzés küldése