|
수야라고합니다...
ActiveX를 제작하였구요
해당 ActiveX에서 제가 만든 프로그램을 실행시켜주는 명령을 수행하게 되는데요
그냥 프로그램을 실행시켰을때와 ActiveX에서 실행시켜주었을때와
다른 Execute에서 실행시켰을때의 결과가 상이하게 다릅니다.
그냥 실행시켰을 경우에는 아무런 무리없이 소켓통신도 원활히 잘 이루어지는데요
일반 실행파일에서도 아무이상 없이 잘 돌아갑니다.
헌데!! ActiveX에서 실행시켰을경우에는 소켓을 작성해놓은 유닛만 사용하게되면 무조건 에러입니다.
(주소값을 넘겨 받아 사용하는 부분은 100% 에러)
에러 조건 기준은 해당 클래스를 new 한뒤 필요한 콜백인자나 IP, port를 설정한 후 Connect를 한 이후부터 이 클래스를 사용하면 잘못된 번지사용이라는 오류가 납니다.
OnCreate에서 사용하게되면 에러하나 없이 깨끗이 죽어버리구요(이런 기술을 익히고싶을 정도로)
CreateProcess 함수 사용은 아래와 같이 하였습니다.
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
// Start the child process.
if(!CreateProcess(NULL, Temp.c_str(), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
ShowMessage("프로세스 생성 오류" );
}
함수를 조밀하게 건들자니 제데로 실행도 안되고해서 도움 요청합니다.
어떤 이유에서일까요...
알려주시고 이왕이면 해결방책도 좀 알려주셨으면 감사드리겠습니다.
해결 방책이 CreateProcess 함수의 설정이라면 조금 자세히 부탁드리겠습니다.
ㅡㅜ
|