Hello, guys!
Firstly, thank you for such a great project! It's very nice to use it in a
study process in a school/university.
And now a question :)
I have some trouble working on one of my projects, it's code is here:
https://github.com/Barracuda72/PT
The problem is with function "SentenceSample" in "PT4LibIFace.pas"; there are
two ways - my stupidness or mysterious behavior of FPC compiler.
Code:
---------------------------------------------------------
function SentenceSample(N: integer): string; stdcall;
begin
//writeln('N = ', N);
//SentenceSample := RuGetSentence(N);
inc(N);
end;
---------------------------------------------
Of course, inc(N); added just to simplify disassembling. And there is disasm:
---------------------------------------------
sentencesample proc near
push ebp
mov ebp, esp
inc [ebp+0Ch]
leave
retn 8
---------------------------------------------
As you can see, procedure has only one parameter, but FPC generates code as if
there are two
parameters; and the main problem is that it trying to work with wrong variable
(N is in ebp+08,
not 0C; it's obvious and proved by debugging). The result is bad =)
So, can you say, there am I wrong?
Ah, I'm using Lazarus 1.0.14 with FPC 2.6.2, Win32 build
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal