c++ - C++ 中的 "windows cannot access the specified device....."错误

标签 c++ compiler-construction exe

我是 MFC 人员,负责 visual studio 2010,使用 visual studio 创建一些可执行文件!!但是在 linux 和 mac 上,我的可执行文件不能像往常一样工作 windows!! 所以我决定使用 "MinGW" 编译器来创建可执行文件。

注意:-请给我一个建议,“minGW 是跨平台工作的最佳编译器吗?还是还有其他东西??”

我在我的 C 盘上成功安装了 WinGW 编译器并开始使用以下程序..

#include <iostream>
using namespace std;
int main ()
{
  cout << "Hello ";
  return 0;
}

我使用下面的命令编译它,

g++ -static-libgcc -static-libstdc++ Main.cpp

我在同一文件夹中找到了一个名为 a.exe 的可执行文件 :)。工作正常:)

但过了一段时间后,我决定按照以下方式修改同一个程序,

int main ()
{
  return 0;
}

我用相同的命令编译它但是当我使用命令行执行它时它显示错误“访问被拒绝所以我转到那个文件夹并运行与“以管理员身份运行”相同的可执行文件 它向我显示一个消息框,其中包含消息 windows 无法访问指定的设备路径或文件。您可能没有适当的权限

---编辑--

以下代码不工作:-

 int main ()
 {
      int k;
      return 0;
  }

但是这个程序工作:-

int main()
{
  int k;
  k = 0;
  return 0;
}

最佳答案

如果您收到此访问被拒绝错误,那么最可能的原因是可执行文件在另一个进程中打开,可能是链接器或调试器。尝试安装 Process Explorer然后按 Ctrl+F 并输入您的 .exe 的名称。这应该显示 .exe 文件打开的进程。终止那些进程(或者如果您仍在调试,则先结束调试)。然后您应该能够再次构建。

请注意,这与 Microsoft API 无关,因为在任何情况下您都在使用 gcc。

编辑:如果没有持有 .exe 的进程,则可能是存在其他类型的权限问题。 .exe 文件是否存在?你能删除文件并重建吗?可以尝试的另一件事是运行 Process Monitor 并过滤 .exe 的名称——这可能会显示常规的权限被拒绝错误,或者可能是其他错误,例如共享冲突。

关于c++ - C++ 中的 "windows cannot access the specified device....."错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17616125/

相关文章:

c++ - 'thread' 不是 GCC 4.8 中 'std' 的成员

c++ - 代码在 Linux g++ 中无法按预期工作?

objective-c - 如何禁用前向类编译器警告(未记录的类)

windows - 如何使用批处理文件执行任何 .exe?

c++ - 将 EXE 作为 DLL 加载,本地 vftable

c++ - 如何从 C++ 中的函数返回矩阵(板)?

C++ Builder - 文件传输

c++ - 尝试添加引用时 VS 社区错误

c - C 中的 TCP/IP 编程

c++ - 我的 C++ 软件是太多 exe 的集合,我该如何管理它