On 29/10/17 00:31, Vojtěch Čihák wrote:
Looking to docs: https://www.freepascal.org/docs-html/ref/refsu69.html
I tried writeln(AnsiString(args[0].VAnsiString));
or just writeln(String(args[0].VAnsiString));
which works.
V.
______________________________________________________________
> Od: Darius Blaszyk <dhkblas...@zeelandnet.nl>
> Komu: FPC-Pascal users discussions <fpc-pascal@lists.freepascal.org>
> Datum: 29.10.2017 00:59
> Předmět: [fpc-pascal] Problem with array of const
>
Consider the application below. When I run it I do get the following output:
name
rg��������name�F&{00000000-0000-0000-C000-000000000046}
In other words I lose the first character (a) from the arguments
supplied and the string returns with a lot of garbage. What am I doing
wrong here?
Rgds, Darius
program test_args;
procedure test(name: string; args: array of const);
begin
writeln(name);
writeln(args[0].VString^);
end;
begin
test('name', ['arg']);
end.
----------
PS
In fact this page of doc linked by Vojtěch may need reviewing:
docs-html:
"Remark that this is not true for Delphi, so code relying on this
feature will not be portable."
What is not "true"? It is unclear exactly what "this" refers to. Should
this be stating that cdecl modifier is not supported in Delphi?
"Remark: Note that there is no support for QWord arguments in array of
const. This is for Delphi compatibility, "
Huh?
vtWideString : (VWideString: Pointer);
vtInt64 : (VInt64: PInt64);
vtQWord : (VQWord: PQWord);
end;
Also all the code examples are displayed using the wrong quote character
and copying the code results in tons of syntax errors. If this was done
to make mark-up easier it should at least be noted in the About this
Guide, Notations section. Preferably the code should paste and work.
the testit example requires a mode but this is not included as is
promised in About this Guide.
{$mode objfpc}
Further typos suggest is was never tested:
Writeln (’AnsiString, value :’,AnsiString(Args[I].VAnsiString);
missing parenthesis at end of line.
Writeln (’No aguments’);
aguments ??
Therefor, inside the procedure body,
Should be "Therefore". Therefor is a different word.
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal