2010-04-23 4 views
0

XP Windows 컴퓨터의 명령 프롬프트에서 내 DLL 파일과 연결된 콘솔 C++ 응용 프로그램을 실행하려고합니다. 최근에 "이 프로그램을 DOS 모드에서 실행할 수 없습니다."라는 메시지가 나타납니다. 오류 메시지로. 이 exe 순수한 MS-DOS 환경에서 호출 된 경우 인쇄 할 수있는 모든 DLL에서 필러 메시지를 이해합니다. 그렇다면 왜 Windows CMD 창에서이 문제가 발생합니까? 내 DLL 중 하나에 문제가 있다고 알려주고 있습니까?DLL에 연결된 C++ exe를 실행할 수 없습니다. "이 프로그램은 DOS 모드에서 실행할 수 없습니다." 오류

< -------------- 화면 덤프를 다음과 같이

또한 나는 ---------- 오류 메시지 후 immeditaly 윈도우 경로 묘사 변화를 관찰 -------------------->

C : \ Program Files \ MYPROGRAMS \ APPLICATIONS> foo.exe 이 프로그램은 DOS 모드에서 실행할 수 없습니다.

C : \ PROGRA ~ 1 \ MYPROG ~ 1 \ APPLICAT ~ 1
< -------------- 화면 덤프 ------------ ------------------>

경로 텍스트가 Win95 스타일로 변경되는 이유는 무엇입니까? 어떻게 든 시스템을 호환성 모드로 설정합니까?

대부분의 인터넷 검색 결과는 설치 중에 발생하는 오류를 나타냅니다 (시나리오와 달리). 이 링크 http://www.personalcopy.com/doserror.htm은 변형에 대해 이야기하지만 확인란은 더 이상 DOS 창 속성에 없습니다.

도움과 조언을 보내 주시면 감사하겠습니다.

/OUT:"......\nt\win32\Release\foo.exe "/ INCREMENTAL (텍스트 댓글 너무 크기 때문에 응답)

+0

사용했던 링커 명령 행을 게시하십시오. –

+0

이것은 X86 플랫폼에 있습니다. – user88595

답변

1

먼저 16 진수 편집기로 EXE를 실행하십시오. 실행 후, 시작시 MZ 서명을 볼 수 있습니까? MZ 이외의 경우 EXE가 올바른 형식이 아닐 수 있습니다 .. .. 이걸로, 다음에 .. 이동할 수 있습니다.

+0

이것이 제가 도움이되지는 않았지만 이러한 조건 하에서 올바른 접근법 인 것으로 보이는 경우에도 이것을 대답으로 받아 들일 것입니다. – user88595

0

@Hans이 링커 명령입니다 : NO/NOLOGO/MANIFEST /MANIFESTFILE:".\foo_cli\Release\foo.exe.intermediate.manifest "/ DEBUG /PDB:".......\nt\win32\Release/foo.pdb"/ SUBSYSTEM : CONSOLE/OPT : 참조/OPT : ICF/LTCG/MACHINE : X86/ERRORREPORT : PROMPT kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32 .lib odbccp32.lib "...... \ nt \ win32 \ release \ foo_other_tests.lib" "...... \ nt \ win32 \ release \ foo.lib" "...... \ nt \ win32 \ release \ foo_tests.lib ""...... \ nt \ win32 \ release \ foo_logger.lib ""...... \ nt \ win32 \ release \ ext1.lib "".... .. \ nt \ win32 \ release \ ext2.lib "

+0

OK ... 나는 EXE에서 dumpbin을 실행하려고 시도했는데 "오류 : 적어도 하나의 파일이 32 비트 또는 64 비트 Windows 모듈이 아닙니다." http://stackoverflow.com/questions/1320894/why-isnt-cl-exe-producing-a-valid-windows-module에 따르면 이것은 라이브러리 중 하나에서 문제가 될 수 있습니까? 추가 정보 .... – user88595

+0

Ok .. 건물에 문제가있어 문제가 해결되었습니다. 질문에 대답하기 위해 "이 프로그램은 DOS 모드에서 실행할 수 없습니다."라는 메시지가 나타납니다. Windows 명령 프롬프트가 exe를 인식 할 수 없으며 반드시 특정 DOS 또는 Windows 서명으로 인해 필요하지 않은 경우 인쇄되는 것으로 보입니다. – user88595

관련 문제