[fpc-devel] Convert C++ Array[1] to FPC

Sooky Boo sookyboo at gmail.com
Sun Feb 24 15:09:18 CET 2008


I put the function in a for loop and passed I as the size paramater until it
succeeded,

the size of the structure it expects is 40.

40 is equal to  GetMem(sizeOf(SSLPROTOCOLS) + (2) * sizeOf(SSLPROTOCOL));

so

protocols := LPSSLPROTOCOLS(GetMem(sizeOf(SSLPROTOCOLS) + (2) *
sizeOf(SSLPROTOCOL)));

but the size of protocols^ is always 16 no matter what I put in GetMem. (16
is the size of SSLPROTOCOL on its own)
How do I now GetMem for  protocols^.ProtocolList.

//protocols^.ProtocolList := (GetMem((2) * sizeOf(SSLPROTOCOL)));//Error:
Incompatible types: got "Pointer" expected "Array[0..0] Of SSLPROTOCOL"


Thanks

On Sun, Feb 24, 2008 at 12:31 PM, Bram Kuijvenhoven <
mailinglists.bram at kuijvenhoven.net> wrote:

> Sooky Boo wrote:
> > On 2/23/08, ik <idokan at gmail.com> wrote:
> >> {$PACKRECORDS C}
> >>
> >> On Sat, Feb 23, 2008 at 5:59 AM, Sooky Boo <sookyboo at gmail.com> wrote:
> >>>
> >>> Please help I am unsure how to port from C++ to fpc this code.
> >>> The function this must be passed to says that the structure pointer or
> >> size
> >>> is invalid.
> >>>
> >>> ----C++----
> >>>
> >>> typedef struct _SSLPROTOCOLS {
> >>> DWORD dwCount;
> >>> SSLPROTOCOL ProtocolList[1]; // array of 'count' structures
> >>> } SSLPROTOCOLS, FAR *LPSSLPROTOCOLS;
> >>>
> >>> ----My Attempt FPC Delphi Mode----
> >>>
> >>> type SSLPROTOCOLS = record
> >>> dwCount :DWORD;
> >>> ProtocolList : array[0..0] of SSLPROTOCOL; // array of 'count'
> structures
> >>> end;
> >
> > Unfortunately still doesn't work :(
>
> The actual size of the SSLPROTOCOLS struct/record should match the value
> of dwCount. Allocating such a record probably should go like
>
>  LPSSLPROTOCOLS(GetMem(sizeOf(SSLPROTOCOLS) + (dwCount - 1) *
> sizeOf(SSLPROTOCOL)))
>
> Sometimes a dummy record is to be appended at the end of the array,
> similar to the null character at the end of a null-terminated string. In
> that case it is possible that this 'sentinel' record is not counted in
> dwCount, but you should still allocate the space of course. Please refer to
> the documentation of the header file (I hope there is).
>
> I hope this helps.
>
> Regards,
>
> Bram
>
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20080224/75485143/attachment.html>


More information about the fpc-devel mailing list