问题标签 [ntvdm.exe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
2985 浏览

c# - C# 控制台应用程序都是 16 位的?

当我构建一个快速测试控制台应用程序时,我正在阅读有关 NTVDM.exe 的信息,它在抱怨这个 EXE 的朋友机器上崩溃了。

据我了解,所有 DOS cmd 窗口(包括 C# 控制台应用程序)都以 16 位而不是 32 位运行。

这是真的?这是否意味着我所有的工作控制台应用程序后台应用程序都以 16 位运行,而不是充分利用 32 位?

Windows 服务呢?我相信我们将其编写为控制台应用程序,然后使其作为 Windows 服务运行?

谢谢

0 投票
1 回答
3545 浏览

ntvdm.exe - NTVDM CPU 遇到非法指令

我遇到了一个我不明白的相当奇怪的错误。我创建了一个 C# 控制台应用程序,旨在测试我的 Web 服务是否在我的网络外部工作。它所做的只是尝试连接到 Web 服务,将每个阶段输出到控制台并将其写入文本文件,以便他们可以将日志发送给我。

它在 3 台 XP 机器上运行良好(一台在我的网络内,两台在我的网络外)。一台 Vista 机器(有一个清单文件)但在我老板的 XP 机器上(他是一名 IT 人员,所以知道他在做什么),它抛出了一个非常奇怪的错误。

C:\temp\testwe~1.exe NTVDM CPU遇到非法指令

http://www.houseofhawkins.com/roger.jpg">

我做了一些谷歌搜索,看起来他的 NTVDM 可能被窃听了,或者有病毒什么的。这些似乎都不是。我看不出会发生什么导致它以这种方式失败。

使用系统;使用 System.Collections.Generic;使用 System.Text;使用 System.IO;

命名空间 testwebservice { 类程序 { FileStream theFile = null; StreamWriter 作家 = null;

}

我很困惑为什么上面的代码可以/会这样做。这只是我想知道的部分,这可能会发生在真正的客户机器上,还是只是我老板的机器被感染了或其他什么。

谢谢

0 投票
1 回答
302 浏览

winapi - 无法再启动 16 位应用程序

我正在尝试使用 C++ 编写的 Win32 宏应用程序来调试和解决一些问题,但是我遇到了最奇怪的问题。

我必须启动一个 16 位程序,然后模拟输入数据,并且使用 ShellExecute 已经两年多了。我根本没有接触过这个实际的代码,但现在它不起作用。

我在做ShellExecute(NULL, "open", exe_path.c_str(), NULL, "", SW_SHOWDEFAULT);。这多年来一直完美无缺,但突然之间,它停止了工作。它给了我一个 ACCESS_DENIED 错误代码。我在 Google 上搜索过,显然这是启动 16 位应用程序时非常常见的问题。

工作站 XP SP2 环境根本没有改变,它实际上一直在工作,直到我不久前重建(我之前已经重建过很多次)。

代码位于窗口过程函数中,当我将其取出并在 WinMain 函数中启动程序时,它可以工作,但代码必须在窗口过程中......

我尝试了许多替代方案,但它们都给出了相同的问题。

最大的问题是它正在工作,然后突然决定它不会改变代码和环境!事实上,它认为它会停止工作的测试更改大约进行到一半。

请帮忙,因为没有程序启动我什么都做不了。这是我正在调试的代码的第一步!

0 投票
0 回答
312 浏览

c# - 向 NTVDM 中包装的 16 位 DOS 应用程序发送击键

我正在尝试将击键发送到包装在 NTVDM 中的 16 位 DOS 应用程序。我下面的代码目前能够成功地将击键发送到任何应用程序(例如记事本),包括命令提示符,这让我想知道为什么它不适用于我试图发送到的 DOS 应用程序。虽然我相信这与被包裹在 NTVDM 中的 DOS 应用程序有关。希望有人能给我一些线索。目前,我下面的代码正在将 ALT+SPACE 发送到命令提示符并选择全部:

0 投票
0 回答
11 浏览

ntvdm.exe - NTVDM 遇到系统错误 4001h

发现并修复了 Ntvdm 错误。问题不在 Windows 中,而是在其他程序中损坏的文件。固定文件,一切正常。谢谢你。