c++ - 无法运行 DLL 链接的 C++ exe。 "This program cannot be run in DOS mode."错误

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

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

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

<------------屏幕转储---------------------------->

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

C:\PROGRA~1\MYPROG~1\APPLICAT~1>
<----------------屏幕转储-------------------------------->

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

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

感谢任何帮助和指点。

最佳答案

首先用十六进制编辑器打开EXE,你想运行什么。打开后,你能在开始时看到MZ签名吗...如果不是MZ,可能有,Exe不是正确的形式.. ..在此之后,你可以下一步..

关于c++ - 无法运行 DLL 链接的 C++ exe。 "This program cannot be run in DOS mode."错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2697516/

相关文章:

c++ - 将 C++ DLL 加载到调用另一个 DLL 中的函数的 matlab

c++ - 如何将现有对象 push_back 到共享指针 vector ?

c++ - 如何使用所有库在 wxSmith ( Codeblocks ) 中编译程序?

c++ - 如何抑制来自 ON_BLOCK_EXIT 的警告(ScopeGuard 的一部分)

visual-studio - 如何将 'long long'(或 __int64)转换为 __m64

c# - 为什么我在 Vista 上可能会遇到 DLL 未找到异常,但在 XP 上却不会?

c++ - 为什么在实践中向右移动在 Neon 和 SSE 中向左移动(反之亦然)?

c++ - Eclipse 索引器不工作

C++:局部范围内的类属性

c++ - 使用 Rcpp 构建包时处理修饰的外部二进制文件