윈도우 프린트창 보여주는 건데요.
실행하면 프로그램이 뻗어버립니다.
Access Violation..
뭐가 문제일까요?
procedure TFmPrintHtm.ActionPrintExecute(Sender: TObject);
Var
P : PChar;
begin
// Print page...
if cPrintFile = '' then Exit;
GetMem(P, Length(cPrintFile) + 1);
if p= nil then exit; //kwj
ShellExecute(Handle,'Print', StrPCopy(P, cPrintFile), nil, nil, SW_SHOW);
FreeMem(P,Length(cPrintFile) + 1); //여기서뻗음.
ActionExitExecute(nil);
Application.ProcessMessages;
end;
위코드를 아래처럼 stralloc를 사용하면 잘 안뻗는데,
역시 5번정도 실행하면, 잘못된 연산을.. 에러 납니다.
if cPrintFile = '' then Exit;
P := stralloc(Length(cPrintFile)+1);
if P= nil then exit; //kwj
ShellExecute(Handle,'Print', StrPCopy(P, cPrintFile), nil, nil, SW_SHOW);
StrDispose(P);