On 03 Jan 2006, at 19:57, Hans Mårtensson wrote:

So I tried:
if DialogBoxIndirect(0, pBox2, Window, Box2Proc) = 0 then exit;
And the compiler assessed that the number of parameters was wrong.
But this is an error in message, because the number of parameters is right.

It was probably complaining that too few parameters were specified to Box2Proc, not to DialogBoxIndirect. I guess from this that you are working in either fpc or objfpc mode.

I had that option in my mind too, but the number of parameters in Box2Proc is also correct.

What I mean is that in the above snippet (when compiled in fpc/objfpc mode), you are calling Box2Proc and passing the result of that call as last parameter to DialogBoxIndirect. Since Box2Proc requires 4 parameters and you didn't supply any, the compiler complains that you didn't supply enough parameters.

I use the fpc compiler on a source code written in the CrEdit program. I have not changed the configuration file that comes with the FreePascal download (except for file location of units). The only compiler directive I have used in the program is the {$APPTYPE GUI}

Then you are working in fpc mode.

This is the declaration of DialogBoxIndirect:

function DialogBoxIndirect(hInstance:HINST; hDialogTemplate:LPCDLGTEMPLATE; hWndParent:HWND; lpDialogFunc:DLGPROC):longint;

This is the declaration of DLGPROC:

DLGPROC = function (_para1:HWND; _para2:UINT; _para3:WPARAM; _para4:LPARAM):LRESULT;stdcall;

As long as the definition of Box2Proc is compatible with this, there should be no problem.

I cannot see any problem here.
But where are these definitions, I cannot find them in the FPC download, should they be downloaded separately?

They are in the sources of the RTL. The above ones are in rtl/win32/ wininc/ascdef.inc. The sources are available from http:// www.freepascal.org/down/source/sources.html

Are they exactly the same as the definitions in the Microsoft documentation?

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.


Jonas_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to