<p>I put the function in a for loop and passed I as the size paramater until it succeeded,</p>
<p>the size of the structure it expects is 40.</p>
<p>40 is equal to  GetMem(sizeOf(SSLPROTOCOLS) + (2) * sizeOf(SSLPROTOCOL));</p>
<p>so</p>
<p>protocols := LPSSLPROTOCOLS(GetMem(sizeOf(SSLPROTOCOLS) + (2) * sizeOf(SSLPROTOCOL)));</p>
<p>but the size of protocols^ is always 16 no matter what I put in GetMem. (16 is the size of SSLPROTOCOL on its own)</p>
<div>How do I now GetMem for  protocols^.ProtocolList.</div>
<div> </div>
<div>//protocols^.ProtocolList := (GetMem((2) * sizeOf(SSLPROTOCOL)));//Error: Incompatible types: got "Pointer" expected "Array[0..0] Of SSLPROTOCOL"</div>
<div> </div>
<div> </div>
<div>Thanks<br><br></div>
<div class="gmail_quote">On Sun, Feb 24, 2008 at 12:31 PM, Bram Kuijvenhoven <<a href="mailto:mailinglists.bram@kuijvenhoven.net">mailinglists.bram@kuijvenhoven.net</a>> wrote:<br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div class="Ih2E3d">Sooky Boo wrote:<br>> On 2/23/08, ik <<a href="mailto:idokan@gmail.com">idokan@gmail.com</a>> wrote:<br>>> {$PACKRECORDS C}<br>>><br></div>
<div class="Ih2E3d">>> On Sat, Feb 23, 2008 at 5:59 AM, Sooky Boo <<a href="mailto:sookyboo@gmail.com">sookyboo@gmail.com</a>> wrote:<br>>>><br>>>> Please help I am unsure how to port from C++ to fpc this code.<br>
>>> The function this must be passed to says that the structure pointer or<br>>> size<br>>>> is invalid.<br>>>><br>>>> ----C++----<br>>>><br></div>
<div class="Ih2E3d">>>> typedef struct _SSLPROTOCOLS {<br>>>> DWORD dwCount;<br>>>> SSLPROTOCOL ProtocolList[1]; // array of 'count' structures<br>>>> } SSLPROTOCOLS, FAR *LPSSLPROTOCOLS;<br>
>>><br>>>> ----My Attempt FPC Delphi Mode----<br>>>><br></div>
<div class="Ih2E3d">>>> type SSLPROTOCOLS = record<br>>>> dwCount :DWORD;<br>>>> ProtocolList : array[0..0] of SSLPROTOCOL; // array of 'count' structures<br>>>> end;<br>><br>
</div>
<div class="Ih2E3d">> Unfortunately still doesn't work :(<br><br></div>The actual size of the SSLPROTOCOLS struct/record should match the value of dwCount. Allocating such a record probably should go like<br><br> LPSSLPROTOCOLS(GetMem(sizeOf(SSLPROTOCOLS) + (dwCount - 1) * sizeOf(SSLPROTOCOL)))<br>
<br>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).<br>
<br>I hope this helps.<br><br>Regards,<br><font color="#888888"><br>Bram<br></font>
<div>
<div></div>
<div class="Wj3C7c"><br>_______________________________________________<br>fpc-devel maillist  -  <a href="mailto:fpc-devel@lists.freepascal.org">fpc-devel@lists.freepascal.org</a><br><a href="http://lists.freepascal.org/mailman/listinfo/fpc-devel" target="_blank">http://lists.freepascal.org/mailman/listinfo/fpc-devel</a><br>
</div></div></blockquote></div><br>