我正在尝试使用 C++ 编写的 Win32 宏应用程序来调试和解决一些问题,但是我遇到了最奇怪的问题。
我必须启动一个 16 位程序,然后模拟输入数据,并且使用 ShellExecute 已经两年多了。我根本没有接触过这个实际的代码,但现在它不起作用。
我在做ShellExecute(NULL, "open", exe_path.c_str(), NULL, "", SW_SHOWDEFAULT);
。这多年来一直完美无缺,但突然之间,它停止了工作。它给了我一个 ACCESS_DENIED 错误代码。我在 Google 上搜索过,显然这是启动 16 位应用程序时非常常见的问题。
工作站 XP SP2 环境根本没有改变,它实际上一直在工作,直到我不久前重建(我之前已经重建过很多次)。
代码位于窗口过程函数中,当我将其取出并在 WinMain 函数中启动程序时,它可以工作,但代码必须在窗口过程中......
我尝试了许多替代方案,但它们都给出了相同的问题。
最大的问题是它正在工作,然后突然决定它不会改变代码和环境!事实上,它认为它会停止工作的测试更改大约进行到一半。
请帮忙,因为没有程序启动我什么都做不了。这是我正在调试的代码的第一步!