ActiveX Library > Automation Object 형식으로 만들었고, 업로드 부분은 아래와 같이 작성하고
html 소스에서 javascript로 AXUpload.Upload('c:\log.txt') 형태로 불러 사용했습니다.
하지만 Access violation at address 0CE7FCB0 in module 'AXUPDA~1.DLL'. Read of address 00000148 에러가 납니다.
(하지만 ActiveX Library > ActiveX Form 으로 생성하고 폼에서 버튼 클릭 시 아래와 동일하게 하면
정상적으로 동작합니다.)
Automation Object 형식으로 DLL 만들어서 사용할 경우에는 왜 Access violation가 나는지
해결방법에 대해서 도움 부탁 드립니다. ㅠㅠ
procedure TAXUpload.Upload(const inSrcFile: WideString);
var
Stream: TStringStream;
Params: TIdMultipartFormDataStream;
begin
Stream := TStringStream.Create('');
try
Params := TIdMultipartFormDataStream.Create;
try
Params.AddFile('data', inSrcFile, 'application/octet-stream');
try
IdHTTP1.Post(' http://domain.com/upload.php', Params, Stream);
except
on E: Exception do
ShowMessage('Error encountered during POST: ' + E.Message);
end;
ShowMessage('전송 완료');
finally
Params.Free;
end;
finally
Stream.Free;
end;
end;
|