안녕하세요
항상 고수님들의 도움을 많이 받고 있는 자칭 델피언입니다. ^^;
다름이 아니라 서버에 있는 외부프로그램을 실행시키는 기능을 가지는
asp컴포넌트를 만들고 있는데 파라미터가 있는 함수 다음과 같이 만들면
아래와 같은 에러가 발생합니다.
<<<---------------------------------------------------------------------
procedure Texe_unit.winexe(exepath: Pchar);
begin
WinExec(exepath, sw_show);
end;
--------------------------------------------------------------------->>>
의 함수를 asp에서 다음과 같이 실행하면
<<<<---------------------------------------------------------------------
<% set con=server.createobject("exeproj.exe_unit")
con.winexe("C:HNCHWPW.EXE")%>
--------------------------------------------------------------------->>>
다음과 같은 에러가 발생합니다.
<<<---------------------------------------------------------------------
Microsoft VBScript 런타임 오류 error '800a01ca'
변수에 VBScript에서 지원하지 않는 자동화 형식이 사용되었습니다.: 'con.winexe'
/down/test.asp, line 3
--------------------------------------------------------------------->>>
그런데 이상하게 다음과 같이 파라미터없는 프로시저를 만들면 에러가 뜨질않습니다.
<<<---------------------------------------------------------------------
procedure Texe_unit.winexe;
begin
WinExec(Pchar('C:WINDOWSNOTEPAD.EXE'), sw_show);
end;
--------------------------------------------------------------------->>>
<<<<---------------------------------------------------------------------
<% set con=server.createobject("exeproj.exe_unit")
con.winexe %>
--------------------------------------------------------------------->>>
위의 문은 에러가 없는거죠...
며칠째 이문제로 고민하다가 고수님에게 다시 도움을 청합니다.
혹시 다른방법으로 asp로 외부프로그램을 실행시킬수 있는 방법이 있으면
같이 부탁드립니다.
좋은 하루 되세요..
이부분이 잘못 되었거든요...
Automation 사용시에는 BSTR로 받도록 해야 합니다. (TypeLibrary Editor에서)
그럼 Implemetation File에는 다음과 같이 나올겁니다.
procedure Texe_unit.winexe(const exepath: WideString);
참고로 BSTR을 Delphi에서 구현한 것이 WideString입니다.
권영택 wrote:
> 안녕하세요
>
> 항상 고수님들의 도움을 많이 받고 있는 자칭 델피언입니다. ^^;
>
> 다름이 아니라 서버에 있는 외부프로그램을 실행시키는 기능을 가지는
>
> asp컴포넌트를 만들고 있는데 파라미터가 있는 함수 다음과 같이 만들면
>
> 아래와 같은 에러가 발생합니다.
> <<<---------------------------------------------------------------------
> procedure Texe_unit.winexe(exepath: Pchar);
> begin
>
> WinExec(exepath, sw_show);
>
> end;
> --------------------------------------------------------------------->>>
>
>
> 의 함수를 asp에서 다음과 같이 실행하면
> <<<<---------------------------------------------------------------------
> <% set con=server.createobject("exeproj.exe_unit")
>
> con.winexe("C:HNCHWPW.EXE")%>
> --------------------------------------------------------------------->>>
>
> 다음과 같은 에러가 발생합니다.
> <<<---------------------------------------------------------------------
> Microsoft VBScript 런타임 오류 error '800a01ca'
>
> 변수에 VBScript에서 지원하지 않는 자동화 형식이 사용되었습니다.: 'con.winexe'
>
> /down/test.asp, line 3
> --------------------------------------------------------------------->>>
>
>
>
> 그런데 이상하게 다음과 같이 파라미터없는 프로시저를 만들면 에러가 뜨질않습니다.
> <<<---------------------------------------------------------------------
> procedure Texe_unit.winexe;
> begin
>
> WinExec(Pchar('C:WINDOWSNOTEPAD.EXE'), sw_show);
>
> end;
> --------------------------------------------------------------------->>>
>
> <<<<---------------------------------------------------------------------
> <% set con=server.createobject("exeproj.exe_unit")
>
> con.winexe %>
> --------------------------------------------------------------------->>>
>
> 위의 문은 에러가 없는거죠...
>
>
> 며칠째 이문제로 고민하다가 고수님에게 다시 도움을 청합니다.
>
> 혹시 다른방법으로 asp로 외부프로그램을 실행시킬수 있는 방법이 있으면
>
> 같이 부탁드립니다.
>
> 좋은 하루 되세요..