안녕하세요.
제가 코딩하고 있는 프로그램이 해야할 작업중 하나가
제 프로그램(1)이 다른 프로그램(2)을 부른이후에
리턴코드를 받아서 그 코드에 따라 다시 또 다른 프로그램(3)을 실행시켜야 하는 것입니다.
제가 사용하던 방식은 로그화일을 작성해서 그 화일에 작성된 코드를 바탕으로 프로그램(3) 을 실행 하는
식이었는데요. 다루는 데이터 화일들이 실지 타 회사들에서 오는 수 기가 정도 되는 데이타 들을 읽어내고
테이블을 작성하고 있는 과정에서 (정확한 이유는 모르지만) 프로그램(1) 자체가 로그 화일을 계속 홀딩하고
있는 상태에서 프로그램(3)가 그 로그화일을 읽어내버려서 I/O Error 가 발생을 하더라구요.
Sleep같은 방법으로 그 타이밍을 조절할려고도 해봤지만, 때로는 에러가 발생하구요.
질문을 짧게 해서요, 프로그램1 이 프로그램2 를 불러낸이후에 리턴 하는 코드들을 프로그램1 에서 받는것이
가능하게 했으면좋겠습니다. 로그 화일 작성 하는 방법 말구요.
ShellExecute 으로는 프로그램2 가 실행이됐는지 여부만 리턴을 하더라구요.
외국거주중이라 용어사용이나 설명이 조금 이상하더라도, 인내심을 가지고 봐주셨으면 감사하겠습니다.^^
다들 좋은 하루 되시구요.
수고하세요~
제 짧은 이해력으로 보건데 2개의 프로그램이 떠 있는 상태에서
상호간에(또는 2번플그램에서 1번플그램으로의)
원하는 신호/데이타(결과 값)를 받고 싶으신거라고 보여지네요.
만약 그렇다면 메모리맵을 이용해보시면 될 듯 합니다.
리턴값을 보내야겠다는 신호는 윈도우 메세지를 주고 받으심 되겠습니다.
메모리맵이용은 CreateFileMapping 함수와 MapViewOfFile 을 이용해보세요
즐프하세용!