无法运行DLL链接的C ++ exe。 “该程序无法在DOS模式下运行。”错误

时间:2010-04-23 09:35:37

标签: c++ visual-c++ dll dos

我正在尝试在XP Windows机器中运行从命令提示符链接我的DLL文件的控制台C ++应用程序。最近我开始得到“这个程序无法在DOS模式下运行”。作为错误消息。据我所知,如果在纯MS-DOS环境中调用此exe,则所有DLL中的填充消息都要打印。那我为什么要在Windows CMD窗口中获取它呢?它告诉我我的一个DLL有问题吗?

此外,我在IM路径描述更改错误消息后立即观察到如下

< -------------- Screen Dump ----------------------------- - >

C:\ Program Files \ MYPROGRAMS \ APPLICATIONS> foo.exe 该程序无法在DOS模式下运行。

C:\ PROGRA〜1个\ MYPROG〜1个\ APPLICAT〜1>
< -------------- Screen Dump ------------------------------>

为什么路径文本会更改为Win95样式(因为缺少更好的短语)?是以某种方式将系统设置为某种兼容模式吗?

大多数Google搜索都表示仅在安装期间发生此错误(与我的方案不同)。这是链接 http://www.personalcopy.com/doserror.htm讨论了一个变体,但DOS窗口属性中不再出现复选框。

任何帮助和指示赞赏。

2 个答案:

答案 0 :(得分:1)

首先用十六进制编辑器打开EXE,你要运行什么。打开后,你可以在启动时看到MZ签名吗......如果还有MZ以外,可能有,exe不是正确的表格.. ..此后,你可以继续前进..

答案 1 :(得分:0)

@Hans这是链接器命令(回答因为文本太大而无法发表评论)

/ OUT:“...... \ nt \ wint \ Release \ foo.exe”/ INCREMENTAL:NO / NOLOGO / MANIFEST /MANIFESTFILE:".\foo_cli\Release\foo.exe.intermediate.manifest“ / DEBUG /PDB:".......\nt\win32\Release/foo.pdb“/ SUBSYSTEM:CONSOLE / OPT:REF / 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“

相关问题