PIPE사용 CreateProcess
얀별
2023.04.01
다른 랭귀지로 작성된 실행파일은 c에서 사용하기 위해서 c에서 wrapper가 될 dll을 작성합니다.
createprocess를 이용해 실행파일을 호출하구요 이 실행파일은 parameter값을 받으면 그 값을 받아 계산을 처리하고 string값으로 결과를 리턴합니다. 예를들면, test.exe -f add -x 1 -y 2 형식으로 실행파일을 수행하면 결과는 더하기를했습니다,값은3 과값이 1개 혹은 2개의 string을 반환하도록 되어있습니다. 이 실행파일의 결과를 다시 재사용할 수 있어야 하므로 값을 주고받는 방법으로는 file i/o대신 pipe를 사용하려고 합니다.
* dll wrapper가 되는 소스코드 첨부 합니다. 실행파일은 생략합니다. (예를 든것보다 복잡하고 실행하기 위한 라이브러리가 많이 있어서요..)
첨부한 파일은 사용중인 파일을 이용한 대략적인 내용으로 좀 틀린 부분도 있을 수 있습니다.
1. string값을 리턴하는 관계로
extern c __declspec( dllexport ) cstringadd(); 라고 사용하려고 하는데 구문에러가 납니다. int값은 가능한데 헤더에 include stdafx.h도 포함시켰는데 왜 이럴까요?2. pipe값을 처리하는 방법을 알고싶습니다. 대략적으로 readfile을 쓰는거에 대해 공부는 하고 있습니다만 좀 쉬운 예나 설명해주셨으면 감사..ㅠㅠ