问题现象

在Windows 11上用Dev C++ 5.11编译运行程序,出现如下错误不能运行,且自己的程序没有问题。

可能的原因

  1. Dev C++没有以管理员身份运行?
  2. 生成的程序所在的目录受到了访问权限保护?
  3. ...

通过排查,我们发现Dev C++ 5.11通过调用其目录下的ConsolePauser.exe来实现执行完我们的程序之后按任意键退出的功能。问题很可能出现在这个ConsolePauser上。

我们直接写一个新的ConsolePauser替换掉原来的。

进一步试验知道Dev C++ 5.11调用ConsolePauser.exe的命令形式为

ConsolePauser.exe <FileName> <Option>

只要我们获取了FileName字段,便可利用Windows.h提供的system函数执行我们的程序。并在我们的程序结束后返回ConsolePauser。

新的ConsolePauser通过读取命令参数就可以获得FileName字段。

不过新的ConsolePauser的设计有几个细节:

1.整个FileName字段要用双引号括住,以防目录或文件名中出现空格

2.要将可能的Option字段忽略

3.FileName存放在char数组中,数组尽可能大。

4.需要有一个简单的程序运行计时功能

5.需要能清空程序运行后缓冲区中第一个回车之前的全部内容,以截停控制台的关闭。

解决方法

下载压缩包:

https://files.cnblogs.com/files/mrblug/ConsolePauser.zip

解压密码为 mrblug

打开Dev C++程序目录,一般是C:\Program Files (x86)\Dev-Cpp\,重命名目录下的ConsolePauser.exe为ConsolePauser-old.exe,并复制压缩包中的ConsolePauser.exe到该目录下即可。

新的ConsolePauser的代码

在Dev C++ 5.11中设置编译选项为

-std=c11 -Og

通过TDM-GCC 4.9.2 64-bit Release方式编译,得到的可执行文件重命名为ConsolePauser.exe,替换原有程序即可

#include <stdio.h>
#include <time.h>
#include <windows.h> /* Mr.Blug */ char file_name[4096] = "\""; int main(int argc, char **argv)
{
char *src = NULL, *dst = file_name + 1;
for(int i = 1; i < argc; ++i) {
src = argv[i];
if(*src == '-' || *src == '/') break; while(*src) {
*dst = *src++;
++dst;
}
}
*dst = '\"'; clock_t start = clock();
system(file_name); //executing the user program
clock_t end = clock(); printf("====== Dev C++ Console Pauser for Windows 11 ======\n"
" The running time is about %.2lfs\n"
" Press any key to quit..."
,(double)(end - start) / CLOCKS_PER_SEC); int temp;
while( ( temp = getchar() ) != EOF && temp != '\n' ) continue; //pause
return 0;
}

效果

Windows 11上Dev C++ 5.11 提示 Failed to execute xxx Error 0的一种解决方法的更多相关文章

  1. 错误/异常:java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind;的解决方法

    1.异常视图 2.解决方法   SocketException(JVM_Bind):套接口异常     说明:服务器端口号被占用 了  解决方法:点击 Window-->Preferences- ...

  2. Laravel5.5执行 npm run dev时报错,提示cross-env找不到(not found)的解决办法

    Laravel 5.4 Mix & Laravel5.5执行 npm run dev时报错,提示cross-env找不到(not found)的解决办法   首先进入package.json文 ...

  3. 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结

    史上最全的CSS hack方式一览 2013年09月28日 15:57:08 阅读数:175473 做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况.基于此,某些情况我 ...

  4. Win10提示“您未连接到nvidia gpu的显示器”的解决方法

    显卡有Nvidia 和 ATI两个芯片,我们经常称他们为N卡和A卡,N卡更加注重于性能,而A卡则为颜色艳丽,画面更好.不过,最近一些windows10系统用户在使用N卡过程中,遇到了提示“您当前未使用 ...

  5. IntelliJ IDEA提示URI is not registered几种解决方法

    IntelliJ IDEA提示URI is not registered几种解决方法使用IntelliJ IDEA (以下简称IDEA)导入项目或是在maven生成  archetype时候,如果提示 ...

  6. Linux下Python3.5使用pyqt5.11报错 ImportError: /usr/local/lib/python3.5/dist-packages/PyQt5/QtCore.so: undefined symbol: PySlice_AdjustIndices 解决方法

    我用的Linux自带的是Python3.5版本,运行pip3 install PyQt5, 下载的是PyQt5.11,运行PyQt5程序会报错: ImportError: /usr/local/lib ...

  7. 黄聪:Windows 64位系统中安装Android SDK“系统找不到指定的文件Java.exe”解决方法

    明明已经在64位window7中安装好了64位版本的jdk,为什么android SDK安装程序却识别不到jdk呢?先看看报错: Java SE Development Kit (JDK) not f ...

  8. IIS上虚拟目录下站点的web.config与根站点的web.config冲突解决方法

    IIS7.5上在站点下部署虚拟目录,访问虚拟目录下的项目提示与父节点配置冲突.,节点与的<system.web>节点与主站点的<system.web>冲突解决方法: 在站点下的 ...

  9. eclipse代码提示设置过常用字符还是不起作用的解决方法

    问题:重装eclipse之后发现没有了代码提示,一般情况下在设置中添加自动提示的字符之后就可以了,设置如下 如上图,初始的时候是只有一个点号,并没有字符,输入26个字母的大小写后点击Apply and ...

随机推荐

  1. JVM的类加载过程

    每日一句 人到情多情转薄,而今真个不多情. 每日一句 The frog in the well knows nothing of the great ocean. 井底之蛙,不知大海. JVM 的类加 ...

  2. Seata源码分析(一). AT模式底层实现

    目录 GlobalTransactionScanner 继承AbstractAutoProxyCreator 实现InitializingBean接口 写在最后 以AT为例,我们使用Seata时只需要 ...

  3. 关于c#多线程中的几个信号量

    信号量在c#多线程通信中主要用来向阻塞的线程传达信号从而使得阻塞线程继续执行 多线程信号(线程交互):通常是指线程必须等待一个线程或者多个线程通知交互(释放信号)才可以继续执行 在c#中信号量主要有这 ...

  4. CabloyJS V3.2.0支持Socket IO

    CabloyJS v3.2.0引入了Socket IO,并且实现了统一的在线推送和离线推送机制 效果演示 1. IM 用户向系统发送一条消息,系统通过websocket在线通道向用户推送一条回复 2. ...

  5. yum源更换/新

    参考:https://www.cnblogs.com/opsprobe/p/10673031.html

  6. [pwn基础]动态链接原理

    目录 [pwn基础]动态链接原理 动态链接概念 动态链接调用so例子 GOT(全局偏移表) got表劫持小实验 PLT(延迟绑定) PLT概念 延迟绑定(PLT表) 实战学习 [pwn基础]动态链接原 ...

  7. 想写个小说,关于C#的,名字就叫《原Csharp》吧 (第一回 买书未成炁自生 惶惶回屋遇老翁)

    以前也有写过一些小说,但是总是写写停停的,因为忙于项目和其他事情,总是耽搁很久(真的是很久)才会继续动两笔,所以我想先在这里以随笔的方式写个关于C#异世界的小故事吧,更新随缘,也稍微能让自己轻松些. ...

  8. SAP APO-供需匹配

    供需匹配包含主要功能"匹配能力"(CTM)和一个用于分配库存的附加功能. 在高级计划和优化中,SDM组件为这些应用程序提供跨工厂供应策略- 生产计划和详细计划(PP / DS) 供 ...

  9. Nginx开机自启

    编写service脚本: vim /usr/lib/systemd/system/nginx.service 将以下内容复制到nginx.service文件中 ps:我的nginx目录是/usr/lo ...

  10. 一网打尽异步神器CompletableFuture

    最近一直畅游在RocketMQ的源码中,发现在RocketMQ中很多地方都使用到了CompletableFuture,所以今天就跟大家来聊一聊JDK1.8提供的异步神器CompletableFutur ...