• string

    From aurora baccio@21:1/5 to All on Mon Oct 18 06:52:30 2021
    good morning.
    unknown grammar
    My habit in creating string variables is as follows :
    local cVariable := "" as string
    You always propose me instead of string string2psz.
    I would like to know the difference and the usefulness in using one or the other.
    If I search in the help I don't understand the differences.
    thanks
    Aurora Baccio

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Wolfgang Riedmann@21:1/5 to aurora baccio on Tue Oct 19 09:09:31 2021
    Buon giorno Aurora,

    the "normal" variable type to use in VO is "string".

    C/C++, the language in which Windows is written, does not knows that
    datatype.
    In these languages (and some more) a string is defined as a sequence of
    bytes terminated by a byte with the value of 0 (zero).
    This datatype exists also in VO, and is called "PSZ" - a Pointer to a
    String terminated with Zero.

    So, if you have to interface with the Windows API you cannot use a
    string, but you have to use a PSZ.

    The function "String2PSZ()" does exactly what it says:
    a memory part is allocated, and string content is copied there, and
    terminated with a zero byte. The a pointer to this memory allocation is returned, and this can be passed to the Windows API call.
    If the function/method ends, the memory is released to the OS.

    Wolfgang


    aurora baccio wrote:

    good morning.
    unknown grammar
    My habit in creating string variables is as follows :
    local cVariable := "" as string
    You always propose me instead of string string2psz.
    I would like to know the difference and the usefulness in using one
    or the other. If I search in the help I don't understand the
    differences. thanks
    Aurora Baccio



    --

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Karl-Heinz@21:1/5 to All on Tue Oct 19 16:11:26 2021
    Hi Aurora,

    in addition to what Wolfgang wrote: I´m using 2.8 SP3 where some VO
    functions use a PSZ instead of a STRING declaration.

    e.g.

    _DLL FUNCTION DirMake (pszDir AS PSZ) AS INT PASCAL:VO28RUN.DirMake


    To make the compiler happy you should use String2Psz() in such cases.

    DirMake ( String2Psz ( cDirName) )

    regards
    Karl-Heinz

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From aurora baccio@21:1/5 to All on Tue Oct 19 09:48:18 2021
    Il giorno martedì 19 ottobre 2021 alle 09:09:35 UTC+2 Wolfgang Riedmann ha scritto:
    Buon giorno Aurora,

    the "normal" variable type to use in VO is "string".

    C/C++, the language in which Windows is written, does not knows that datatype.
    In these languages (and some more) a string is defined as a sequence of bytes terminated by a byte with the value of 0 (zero).
    This datatype exists also in VO, and is called "PSZ" - a Pointer to a
    String terminated with Zero.

    So, if you have to interface with the Windows API you cannot use a
    string, but you have to use a PSZ.

    The function "String2PSZ()" does exactly what it says:
    a memory part is allocated, and string content is copied there, and terminated with a zero byte. The a pointer to this memory allocation is returned, and this can be passed to the Windows API call.
    If the function/method ends, the memory is released to the OS.

    Wolfgang
    aurora baccio wrote:

    good morning.
    unknown grammar
    My habit in creating string variables is as follows :
    local cVariable := "" as string
    You always propose me instead of string string2psz.
    I would like to know the difference and the usefulness in using one
    or the other. If I search in the help I don't understand the
    differences. thanks
    Aurora Baccio
    --
    thanks

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)