I've developed a program that communicates with another program through anonymous pipes set up by the other program (not written by me).
The problem is that my program keeps crashing as soon as I add something more than just receiving the info. For example, if I add a simple "showMessage", it crashes, but works again if I remove it.
Here is the code:
procedure TArena.read_winboard; var text:string; ch:char; begin while true do begin text:=''; repeat read(input,ch); text:=text+ch; until ch=#10; //showMessage('this instruction makes the program crash'); form1.memo1.Lines.Add(text); end; end;
Obviously the showMessage-instruction is just an example. If I try to do any parsing of the incoming text (for example sending it to a parser-function of some sort), it crashes. But the code above, devoid of anything extra, doesn't crash, and I can tell by the ouput in the memo that everything is received as expected (and sending info the other way works as well). So the communication is working.
I hear that buffering handled wrongly can cause problems (even crashing?). Is the input used by that read function using a buffer? And is the read function I'm using a real systems call or a part of Delphi (internally doing the systems call)?
My program has no previous history of crashing.