[fpc-pascal] Problem with FPC2.0.2 and windows
Hans MÃ¥rtensson
cirkulation at maartensson.net
Wed Jan 4 17:51:25 CET 2006
Jonas Maebe wrote:
> They should be.
>
>> Thank you for your careful answer. I will return later if I am able
>> to make a simple sample program that can reproduce the problem.
>> (Or may be I should stick to 1.0.10 that worked for me)
>
>
> It would be nice if you could provide the sample program (and submit
> it as a bugreport at http://www.freepascal.org/bugs.html), since if
> you ran into this it's quite possible that other people will do so as
> well.
When trying to locate the problem I found out that the first problem was
due to my mistake, I'm sorry. The error message was
Error: Incompatible types: got "<address of function(LongWord, LongWord,
LongWord, LongInt):LongInt;StdCall>" expected "<procedure variable type
of function(LongWord, LongWord, LongInt, LongInt):LongInt;StdCall>"
I interpreted this as if the error was caused by an address in stead of
a procedure variable, but actually correcting the type of the 3rd
parameter was sufficient to remove the error.
FPC 1.0.10 compiled the statement with a longword in stead of a longint
correctly without any comments, but it looks like 2.0.2 has a much
stronger type checking.
But my second problem persists. The program is compiled, but the
dialogue box does not show up, when using 2.0.2.
Before I go on trying to locate this problem I must take into account
that Windows requires the data structure for dialogue boxes to be
aligned in a certain way, so I would like to ask the question:
Does PPC 2.0.2 handle alignment of data the same way as former versions?
Will the statements (the conditions)
if (dword(pBoxtemplate) and 1)=1 then pBoxtemplate:=nil;
if (dword(pBoxtemplate) and 2)=2 then inc(pBoxtemplate);
be treated the same way, and is
pointer(pBoxItem) - pointer(pBoxAllokate)
still equal to the distance between the pointers measured in bytes,
regardless of the type of pBoxItem?
Hans MÃ¥rtensson
More information about the fpc-pascal
mailing list