CreateProcess()
을 사용하여 main.exe
이라는 응용 프로그램을 시작하려고합니다. main.exe
이 시작되지만 곧 일부 DLL이 손상되어 Windows OS에서 실행될 수 없다는 몇 가지 오류 메시지가 발생하면 충돌이 발생합니다. 아래 화면 캡처에서 일본 콘텐츠에 대한응용 프로그램을 프로그래밍 방식으로 시작하는 것과 응용 프로그램 아이콘을 수동으로 두 번 클릭하는 것의 차이점은 무엇입니까?
죄송합니다, 팝업 주로 말한다 :
는 바이러스 백신이 화를 보인다 :
**popup title**: the image file of main.exe is not correct.
**popup content**: mshtml.dll can not be executed on Windows or there is error in this file.
오류 메시지 CreateProcess()
후
dummyMain.exe
위 이미지에서 바이러스 백신이 화가났다는 것은 main.exe
을 시작한 모듈입니다. 응용 프로그램을 실행하는 데 사용
내 코드 :
TCHAR sAppFullPath[] = L"D:\\bin\\main.exe";
STARTUPINFO si;
memset(&si, 0, sizeof(si));
si.cb = sizeof(si);
BOOL bCreateProcess = CreateProcess(sAppFullPath,
NULL,// no parameters
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&si,
&m_pi);// m_pi is a member var of class
DWORD dwError = GetLastError();
유용한 정보가되지 않을 수 있지만 : GetLastError()
위 1813을 반환 (ERROR_RESOURCE_TYPE_NOT_FOUND
).
동일한 용도로 위의 CreateProcess()
을 사용하면 오류없이 다른 응용 프로그램을 시작할 수 있습니다. main.exe
특별한 만들 수 있습니다
한 가지입니다 : HTML 페이지를 표시하는 그것의 메인 창에 임베디드 인터넷 익스플로러 서버가있다.
++ 스파이에 의해 확인 된 Internet Explorer_Server
main.exe
는 WPF를 사용하여 C#으로 writen했다.
더 자세한 정보 나 ShellExecute()
와 CreateProcess()
을 교체 한 후
같은 오류가 발생합니다.
따라서 문제는 main.exe
자체에있는 것으로 보입니다.
하지만 아무 문제없이 두 번 클릭하여 시작할 수 있습니다.
손상 될 수 있다고 하였다 된 DLL의 전체 목록은 실행하지 못했습니다했다 : main.exe
추락
Windows\SysWOW64\mshtml.dll
Windows\system32\ntmarta.dll
Windows\SysWOW64\mshtml.dll
Windows\system32\Wpc.dll
Windows\system32\MSHTML.dll
Windows\system32\msctfui.dll
전에 대화는하지 않는 나타나도 있었다 파일 다운로드 (렌더링 할 index.html
) 오류로 인해 응답합니다.
그래서, 나는 embeeded Internet Explorer_Server
와 관련된 문제를 의심하기 시작했다,하지만 난 프로그래밍 응용 프로그램을 시작하고 더블 클릭의 차이점이 무엇인지 모른다.
모든 의견을 환영합니다!
하지만 CreateProcess를 후 GetLastError()() 1813이었다. 'CreateProcess()'가 실패했지만 "main.exe"가 시작되었다고 말하는 겁니까? 그럴 수는 없습니다. 부수적으로, 질문에 문자 그대로 * 코드를 포함시키고 * code * 형식으로 작성하십시오. 그렇지 않으면 검색 기능으로 찾을 수 없습니다. – zett42
쓸데없는 질문입니다. 유용하게 사용하려면 문제가 발생한 코드를 포함 시키십시오. 또한, [투어]는 선택이 아닙니다. – IInspectable
자식 프로세스가 시작된 경우 - CreateProcess가 true를 반환합니다. CreateProcess가 true를 반환하면'GetLastError()'를 반환하지 않습니다. 일반적으로 실패 할 때만 사용됩니다. 아동 과정의 오류 - 별도의 질문 – RbMm