我是 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/