Q&A

  • WinExec에 관한 질문여......꼭좀 봐주세여
안녕하세요 커피향기입니다. 올만에 올리는 질문이네여^^

다름이 아니라 밑에 코딩을 보면 아시겠지만 filename을 추출해서

Winexec를 써서리 포트란으로 짠 프로그램하구 연동시키는 건데여

결과는 나오는데 계속 에러가 나네여.....

에러문장



'Access violation at address 202E6161. Read of address 202E6161'



에구 정말루 모르겠습니다. 왜 이런 에러가 나오는 건지 ㅡ.ㅡ;;

고수님들 꼭좀 갈켜 주세여.........



procedure TForm1.Button3Click(Sender: TObject);

var

b : String;

k : PChar;

addr : string;

j : integer;

re : string;



begin

if OpenDialog1.Execute then

edit39.text := ExtractFileName(OpenDialog1.FileName);

addr := edit39.text;

j := length(edit39.text);

e := copy( addr, 1, j-3);

re := trim(re); // 혹시 모를 공백...땜시

b := 'c:kepcotpbig disk' + ' ' + re + ' ' + re + ' ' + '-r';

StrPCopy(k, b);

WinExec(k,1);

end;



2  COMMENTS
  • Profile
    블랙봉 2001.07.10 03:12
    StrPCopy(k, b); <-- 이 부분 때문에 에러가 난게 아닌가 생각되는군요.

    PChar로 선언되 k에 대해 메모리 할당이 안된 것 같습니다.

    > StrPCopy(k, b);

    > WinExec(k,1);



    위 두 문장을

    WinExec(PChar(b),1);

    로 바꿔보세요.





    커피향기.. wrote:

    > 안녕하세요 커피향기입니다. 올만에 올리는 질문이네여^^

    > 다름이 아니라 밑에 코딩을 보면 아시겠지만 filename을 추출해서

    > Winexec를 써서리 포트란으로 짠 프로그램하구 연동시키는 건데여

    > 결과는 나오는데 계속 에러가 나네여.....

    > 에러문장

    >

    > 'Access violation at address 202E6161. Read of address 202E6161'

    >

    > 에구 정말루 모르겠습니다. 왜 이런 에러가 나오는 건지 ㅡ.ㅡ;;

    > 고수님들 꼭좀 갈켜 주세여.........

    >

    > procedure TForm1.Button3Click(Sender: TObject);

    > var

    > b : String;

    > k : PChar;

    > addr : string;

    > j : integer;

    > re : string;

    >

    > begin

    > if OpenDialog1.Execute then

    > edit39.text := ExtractFileName(OpenDialog1.FileName);

    > addr := edit39.text;

    > j := length(edit39.text);

    > e := copy( addr, 1, j-3);

    > re := trim(re); // 혹시 모를 공백...땜시

    > b := 'c:kepcotpbig disk' + ' ' + re + ' ' + re + ' ' + '-r';

    > StrPCopy(k, b);

    > WinExec(k,1);

    > end;

    >

  • Profile
    커피향기.. 2001.07.10 22:46
    블랙봉 wrote:

    > StrPCopy(k, b); <-- 이 부분 때문에 에러가 난게 아닌가 생각되는군요.

    > PChar로 선언되 k에 대해 메모리 할당이 안된 것 같습니다.

    > > StrPCopy(k, b);

    > > WinExec(k,1);

    >

    > 위 두 문장을

    > WinExec(PChar(b),1);

    > 로 바꿔보세요.

    >

    >

    > 커피향기.. wrote:

    > > 안녕하세요 커피향기입니다. 올만에 올리는 질문이네여^^

    > > 다름이 아니라 밑에 코딩을 보면 아시겠지만 filename을 추출해서

    > > Winexec를 써서리 포트란으로 짠 프로그램하구 연동시키는 건데여

    > > 결과는 나오는데 계속 에러가 나네여.....

    > > 에러문장

    > >

    > > 'Access violation at address 202E6161. Read of address 202E6161'

    > >

    > > 에구 정말루 모르겠습니다. 왜 이런 에러가 나오는 건지 ㅡ.ㅡ;;

    > > 고수님들 꼭좀 갈켜 주세여.........

    > >

    > > procedure TForm1.Button3Click(Sender: TObject);

    > > var

    > > b : String;

    > > k : PChar;

    > > addr : string;

    > > j : integer;

    > > re : string;

    > >

    > > begin

    > > if OpenDialog1.Execute then

    > > edit39.text := ExtractFileName(OpenDialog1.FileName);

    > > addr := edit39.text;

    > > j := length(edit39.text);

    > > e := copy( addr, 1, j-3);

    > > re := trim(re); // 혹시 모를 공백...땜시

    > > b := 'c:kepcotpbig disk' + ' ' + re + ' ' + re + ' ' + '-r';

    > > StrPCopy(k, b);

    > > WinExec(k,1);

    > > end;

    > >

    답변감사합니다.^^*

    그렇게 해보니까 되네여