Re: [fpc-devel] Possible to generate Symbol File with FPC for WinDbg?

2009-05-08 Thread Sooky Boo
Thanks. :(

Does FPC currently generate any alternative symbol file format(s)?

On Fri, May 8, 2009 at 8:50 AM, Jonas Maebe wrote:

>
> On 08 May 2009, at 01:56, Sooky Boo wrote:
>
>  Is it possible to generate a symbol file for WinDbg?
>>
>
> According to http://en.wikipedia.org/wiki/WinDbg it requires debug
> information in the PDB format, and according to
> http://en.wikipedia.org/wiki/Program_database this format is undocumented
> and proprietary. So: no.
>
>
> Jonas
> ___
> fpc-devel maillist  -  fpc-devel@lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-devel
>
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


[fpc-devel] Possible to generate Symbol File with FPC for WinDbg?

2009-05-07 Thread Sooky Boo
Hi,

Is it possible to generate a symbol file for WinDbg?
Thanks
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


[fpc-devel] Re: FPC 2.2.4 rc1 Copy() function issue?

2009-03-13 Thread Sooky Boo
Found a solution.
Copy() only works for one level deep and since using fpc 2.2.4 the array
became two levels deep.

Solution copy array A to array B using copy, then for each element of array
B copy nested array from A to B.
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


[fpc-devel] FPC 2.2.4 rc1 Copy() function issue?

2009-03-13 Thread Sooky Boo
I am using fpc 2.2.4 rc1 and I have a dynamic array of records which I
Copy() to another variable, the copied array has reference pointers to the
original array, I don't think this was the case in earlier versions of fpc.


Anyone know a work around? I could make a function the sets the lengths of
the array and then sets each property of the record but the record
definition sometimes changes and could lead to broken code.

Thanks
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


Re: [fpc-devel] What does the "register" keyword do?

2008-12-02 Thread Sooky Boo
Thanks

On Tue, Dec 2, 2008 at 8:07 AM, Jonas Maebe <[EMAIL PROTECTED]>wrote:

>
> On 02 Dec 2008, at 03:11, Sooky Boo wrote:
>
>  In c++ the register keyword tries to make the compiler use the CPU's
>> registers if possible for the variable being defined.
>>
>
> The register keyword is completely ignored by pretty much any modern C(++)
> compiler out there.
>
>
> Jonas
>
> ___
> fpc-devel maillist  -  fpc-devel@lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-devel
>
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


[fpc-devel] What does the "register" keyword do?

2008-12-01 Thread Sooky Boo
Hi,

I am wondering what the register keyword does, I am hoping that it is the
same as the c++ register keyword.

In c++ the register keyword tries to make the compiler use the CPU's
registers if possible for the variable being defined.

If anyone knows what the register keyword does and how it is used please let
me know.

I could use "asm" and use the registers myself but its not cross platform
compatible.

Thanks
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


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

2008-02-24 Thread Sooky Boo
Thanks for all the help already working :),  realized after last email,
getmem allocates enough memory regardless of what sizeof() says.

Hopefully this will help someone in future with the same type of question.

After the function returns (and populates SSLPROTOCOLS) dwCount is
the amount of elements in the array.

Thanks for the useful tricks.

On Sun, Feb 24, 2008 at 5:55 PM, Bram Kuijvenhoven <
[EMAIL PROTECTED]> wrote:

> Sooky Boo wrote:
> > 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.
>
> BTW what is the value of dwCount?
>
> > 40 is equal to  GetMem(sizeOf(SSLPROTOCOLS) + (2) *
> sizeOf(SSLPROTOCOL));
>
> Indeed.
>
> > 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)
>
> Well, SSLPROTOCOL has size 12 and SSLPROTOCOLS has size 16. (Note that the
> SSLPROTOCOLS record type holds one DWORD and one SSLPROTOCOL.)
>
> The point is that neither C nor Pascal has a way to declare a
> record/struct of varying size. The compiler itself is not aware of the fact
> that SSLPROTOCOLS.ProtocolList is actually an array of of dwCount items.
>
> But you can still use a trick: allocate a block of memory using GetMem,
> then cast the pointer to the memory block to LPSSLPROTOCOLS ( =
> ^SSLPROTOCOLS). This allows you to interpret the first SizeOf(SSLPROTOCOLS)
> bytes of the memory block as if it is a SSLPROTOCOLS record. Moreover, when
> range checking is off, you can use the syntax
>
>  protocols^.ProtocolList[i]
>
> to access any i-th element (as long as you allocated a memory block that
> is large enough).
>
> > 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"
>
> The compiler error tells you precisely what is wrong here. An 'array[0..0]
> of anyThing' is not a pointer type in Pascal (and neither is the
> 'anyThing[1]' type in C). Instead an 'array[0..0] of anyThing' holds room
> for (and has the same size as) one 'anyThing'.
>
> You can't do
>
>  var i:integer;
>  ...
>  i := GetMem(SizeOf(integer));
>
> but you can do
>
>  var pi:^integer; // pointer to integer
>  ...
>  pi := ^integer(GetMem(SizeOf(integer)));
>
> Bram
>
> > On Sun, Feb 24, 2008 at 12:31 PM, Bram Kuijvenhoven
> > <[EMAIL PROTECTED]
> > <mailto:[EMAIL PROTECTED]>> wrote:
> >
> > Sooky Boo wrote:
> >  > On 2/23/08, ik <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
> wrote:
> >  >> {$PACKRECORDS C}
> >  >>
> >  >> On Sat, Feb 23, 2008 at 5:59 AM, Sooky Boo <[EMAIL PROTECTED]
>  > <mailto:[EMAIL PROTECTED]>> 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
>

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

2008-02-24 Thread Sooky Boo
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 <
[EMAIL PROTECTED]> wrote:

> Sooky Boo wrote:
> > On 2/23/08, ik <[EMAIL PROTECTED]> wrote:
> >> {$PACKRECORDS C}
> >>
> >> On Sat, Feb 23, 2008 at 5:59 AM, Sooky Boo <[EMAIL PROTECTED]> 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@lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-devel
>
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


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

2008-02-23 Thread Sooky Boo
On 2/23/08, ik <[EMAIL PROTECTED]> wrote:
> {$PACKRECORDS C}
> ...
> type
> LPSSLPROTOCOL = ^SSLPROTOCOL;
> SSLPROTOCOL = record
> dwProtocol : DWORD;
> dwVersion : DWORD;
> dwFlags : DWORD;
> end;
> _SSLPROTOCOL = SSLPROTOCOL;
>
>
> On Sat, Feb 23, 2008 at 5:59 AM, Sooky Boo <[EMAIL PROTECTED]> 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 _SSLPROTOCOL {
> > DWORD dwProtocol;
> > DWORD dwVersion;
> > DWORD dwFlags;
> > } SSLPROTOCOL, FAR *LPSSLPROTOCOL;
> >
> > typedef struct _SSLPROTOCOLS {
> > DWORD dwCount;
> > SSLPROTOCOL ProtocolList[1]; // array of 'count' structures
> > } SSLPROTOCOLS, FAR *LPSSLPROTOCOLS;
> >
> > My Attempt FPC Delphi Mode
> >
> > type SSLPROTOCOL = record
> > dwProtocol : DWORD;
> > dwVersion : DWORD;
> > dwFlags : DWORD;
> > end;
> > _SSLPROTOCOL = SSLPROTOCOL;
> > LPSSLPROTOCOL = ^SSLPROTOCOL;
> >
> > type SSLPROTOCOLS = record
> > dwCount :DWORD;
> > ProtocolList : array[0..0] of SSLPROTOCOL; // array of 'count'
> > structures
> > end;
> > _SSLPROTOCOLS = SSLPROTOCOLS;
> > LPSSLPROTOCOLS = ^SSLPROTOCOLS;
> > PSSLPROTOCOLS = ^SSLPROTOCOLS;
> >  
> > Thanks in advance.
> > If my port seems correct are there any ideas what could be the problem?
> > ___
> > fpc-devel maillist - fpc-devel@lists.freepascal.org
> > http://lists.freepascal.org/mailman/listinfo/fpc-devel
> >
> >
>
>
>
> --
> http://ik.homelinux.org/
> ___
> fpc-devel maillist - fpc-devel@lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-devel
>

Unfortunately still doesn't work :(
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel


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

2008-02-22 Thread Sooky Boo
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 _SSLPROTOCOL {
DWORD dwProtocol;
DWORD dwVersion;
DWORD dwFlags;
} SSLPROTOCOL, FAR *LPSSLPROTOCOL;

typedef struct _SSLPROTOCOLS {
DWORD dwCount;
SSLPROTOCOL ProtocolList[1];   // array of 'count' structures
} SSLPROTOCOLS, FAR *LPSSLPROTOCOLS;

My Attempt FPC Delphi Mode

type  SSLPROTOCOL = record
dwProtocol : DWORD;
dwVersion  : DWORD;
dwFlags: DWORD;
end;
_SSLPROTOCOL = SSLPROTOCOL;
LPSSLPROTOCOL = ^SSLPROTOCOL;

type SSLPROTOCOLS = record
 dwCount :DWORD;
 ProtocolList : array[0..0] of SSLPROTOCOL;   // array of 'count'
structures
end;
 _SSLPROTOCOLS = SSLPROTOCOLS;
 LPSSLPROTOCOLS = ^SSLPROTOCOLS;
 PSSLPROTOCOLS = ^SSLPROTOCOLS;
 
Thanks in advance.
If my port seems correct are there any ideas what could be the problem?
___
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel