Q&A

  • API함수 Winexec를 쓰는데 에러가....
안녕하세요?



저는 델파이에 입문한지 얼마되지 않은 델초인데요..



다름이 아니라 제가 델파이 책을 보다가 API함수에 대해서 공부하게 됐는데...



아래와 같이 코딩을 하고 실행을 시켰는데 에러가 나거든요...



왜그런지 모르겠는데 좀 갈켜주세요...



procedure TForm1.Button1Click(Sender: TObject);

var

JUN:array[0..28] of char;

begin

StrPCopy(JUN, FileListBox1.FileName);

WinExec(JUN, SW_SHOWNORMAL); //API함수 WinExec로 파일을 실행한다.

end;



"Access violation at address 5CBABCFD. Read of address 5CBABCFD...."이런 에러가



나는데 뭣이 문제인지...??



이제야 API함수에 대해 공부하던 중이라 잘 모르니까 자세히 갈켜주세용....

3  COMMENTS
  • Profile
    최용일 2000.04.21 01:03
    안녕하세요. 최용일입니다.



    var

    JUN:array[0..28] of char;



    위의 JUN이 FileListBox1.FileName을 담기에 충분한 크기가 되지않은것 같군요.



    FileListBox1.FileName의 크기가 28자 이하일 때만 이 에러가 안나죠. 그러니까



    JUN이란 변수에 충분한 크기를 할당해 주세요. 255자 정도면 충분할것입니다.



    var

    JUN:array[0..MAX_PATH] of char; // MAX_PATH = 260







    궁금녀 wrote:

    > 안녕하세요?

    >

    > 저는 델파이에 입문한지 얼마되지 않은 델초인데요..

    >

    > 다름이 아니라 제가 델파이 책을 보다가 API함수에 대해서 공부하게 됐는데...

    >

    > 아래와 같이 코딩을 하고 실행을 시켰는데 에러가 나거든요...

    >

    > 왜그런지 모르겠는데 좀 갈켜주세요...

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > var

    > JUN:array[0..28] of char;

    > begin

    > StrPCopy(JUN, FileListBox1.FileName);

    > WinExec(JUN, SW_SHOWNORMAL); //API함수 WinExec로 파일을 실행한다.

    > end;

    >

    > "Access violation at address 5CBABCFD. Read of address 5CBABCFD...."이런 에러가

    >

    > 나는데 뭣이 문제인지...??

    >

    > 이제야 API함수에 대해 공부하던 중이라 잘 모르니까 자세히 갈켜주세용....

  • Profile
    강민주 2000.04.21 00:54
    궁금녀 wrote:

    > 안녕하세요?

    >

    > 저는 델파이에 입문한지 얼마되지 않은 델초인데요..

    >

    > 다름이 아니라 제가 델파이 책을 보다가 API함수에 대해서 공부하게 됐는데...

    >

    > 아래와 같이 코딩을 하고 실행을 시켰는데 에러가 나거든요...

    >

    > 왜그런지 모르겠는데 좀 갈켜주세요...

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > var

    > JUN:array[0..28] of char;

    > begin

    > StrPCopy(JUN, FileListBox1.FileName);

    > WinExec(JUN, SW_SHOWNORMAL); //API함수 WinExec로 파일을 실행한다.

    > end;

    >

    > "Access violation at address 5CBABCFD. Read of address 5CBABCFD...."이런 에러가

    >

    > 나는데 뭣이 문제인지...??

    >

    > 이제야 API함수에 대해 공부하던 중이라 잘 모르니까 자세히 갈켜주세용....





    그냥.. 이렇게 한번해 보세요.

    WinExec(PChar(FileListBox1.FileName), SW_SHOWNORMAL);







  • Profile
    최은석 2000.04.21 00:54
    궁금녀 wrote:

    > 안녕하세요?

    >

    > 저는 델파이에 입문한지 얼마되지 않은 델초인데요..

    >

    > 다름이 아니라 제가 델파이 책을 보다가 API함수에 대해서 공부하게 됐는데...

    >

    > 아래와 같이 코딩을 하고 실행을 시켰는데 에러가 나거든요...

    >

    > 왜그런지 모르겠는데 좀 갈켜주세요...

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > var

    > JUN:array[0..28] of char;

    > begin

    > StrPCopy(JUN, FileListBox1.FileName);

    > WinExec(JUN, SW_SHOWNORMAL); //API함수 WinExec로 파일을 실행한다.

    > end;

    >

    > "Access violation at address 5CBABCFD. Read of address 5CBABCFD...."이런 에러가

    >

    > 나는데 뭣이 문제인지...??

    >

    > 이제야 API함수에 대해 공부하던 중이라 잘 모르니까 자세히 갈켜주세용....







    WinExec(JUN, SW_SHOWNORMAL); //API함수 WinExec로 파일을 실행한다.



    winexec함수는 아래와같이 해야는데

    winexec(실행할파일이름,윈도우스타일); // 물론 파일경로까지 정확하게 적어줘야겠지요

    아무래도 jun 이라는 변수에 파일의 경로명이 들어가지 않은듯...

    결로명까지 주어서 다시한번 해보세요