|
CreateProcess 함수로 프로세스를 생성 CreatePipe 함수로 파이프 생성후 연결하여 IPC 를 할 수 있습니다.
낭천 님이 쓰신 글 :
: 10년도 전에 WIN32만들어진 프로그램들이 몇개가 있는데 이것들 유지보수 할때마다 스트레스가 이만저만이 아니네요.
:
: 일단 먼저 묻고싶은건. Win32로 만든 어플에서 처리도중에 외부 프로그램을 실행해서. 최소한 그 프로그램에서 원하는 처리가 성공했는지 실패했는지만이라도 결과를 돌려받고 싶습니다.
:
: System.Process 클래스를 사용할 수 있으면 외부 프로그램에서 Console.WriteLine("결과") 이런식으로 출력하게 하고
: p.Start();
: results = p.StandardOutput.ReadToEnd();
: 이런식으로 받을 수 있는 것 같더군요.
:
: 하지만 WIN32에서는 System API를 쓸수가 없네요. 적어도 CLR이면 쓸 수 있는데(한숨..)
:
: 그래서 울며 겨자먹기로 ShellexecuteEX를 사용해서 외부 프로그램을 실행하려고 하는데요...이걸 사용할 경우 위와같이 원하는 값을 리턴받는건 불가능한가요...?
: 이게 첫번쨰 질문이고...
:
: WIN32어플에대해 항상 발생하는 근본적이 문제에대한 해결책을 좀 생각해보고 싶은데요
: 이런부분들을 해결하려고 C#으로는 쉽게 쓸 수 있는 기능들을 C# 라이브러리로 만들고 WIN32에서 불러쓰도록 하려고 해봤는데...이것도 CLR로 만든 프로젝트에서는 C# 라이브러리도 그냥 참조가능한데 WIN32에서 만든건 막 레지스터리 추가하고 별별짓을 다 해야 하는 것 같더군요(결국 성공은했으나 배포의 복잡성에의해 그냥 없던일로 했습니다). 심지어 제가 뭔가 잘 못 알고있는건지도 모르겠으나...CLR로 라이브러리를 만들어서 WIN32에서 부르는것도 그냥 #import 하는걸로는 안되더군요, CLR라이브러리를 동적라이브러리로 해서 그런가...하고 정적라이브러리로 만들어서 시도해보려 했으나 이거는 이거대로 또 CLR프로젝트 컴파일에서 에러가나서 일단 포기했습니다(더 해보고는 싶은데 첫번쨰 질문한 안건부터 얼른 해결해야해서)
:
: 대충 이런 상황인데...좀 WIN32어플에서 프레임워크 API같은거 쉽게 사용할 수 있는 방법이 없을까요..?
:
: 도움 받을 수 있으면 감사하겠습니다!
|