在使用PellesC编译程序时,第一遍能正常编译执行,第二遍就无法编译,出现以下问题提示:

Building NEWprogram2.exe.

POLINK: fatal error: 拒绝访问。

*** Error code: 1 ***

Done.

上网查了一下,没有和我类似情形的,所以也没有办法解决。但是记得昨天编译时出现这种问题是因为执行后的窗口程序没有关闭导致的。于是我查了任务管理器里面的“详细信息”面板下内容,发现果然有名为“NEWprogram2.EXE”的程序执行中,并没有完全退出关闭。

也就是说,关闭了窗口界面后并没有杀死相应的进程,因此再次Build时就会出现问题。

解决办法也就是问题的所在,在源程序中添加关闭相应进程的函数。

<程序中7-9行的代码就是解决问题的关键>

 1 LRESULT CALLBACK MainWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
2 {
3 // ...
4 switch(msg)
5 {
6 // ...
7 case WM_DESTROY: // 窗口销毁,点击右上角的关闭按钮会触发此消息
8 PostQuitMessage(0);
9 break;
10 // ...
11 default:
12 return DefWindowProc(hwnd, msg, wParam, lParam);
13 }
14 return 0;
15 }

添加了相应的代码后,关闭窗口同时就会注销掉相应的进程。

接下来简单介绍一下WM_DESTROY和PostQuitMessage:

*************************************************

<以下解释来源于网络>

WM_DESTROY消息作用:Windows正在根据使用者的指示关闭窗口。该消息是使用者单击Close按钮或者在程序的系统菜单上选择 Close时发生的。

MainWndProc通过呼叫PostQuitMessage以标准方式响应WM_DESTROY消息:

1 PostQuitMessage (0) ;

该函数在程序的消息队列中插入一个WM_QUIT消息。GetMessage对于除了WM_QUIT之外的从消息队列中取出的所有消息都传回非0值。而当GetMessage得到一个WM_QUIT消息时,它传回0。这将导致WinMain退出消息循环,然后return叙述将退出WinMain并终止程序。

*************************************************

对于新手来说,上面的解释已经能够满足我的好奇心了,而更加深入的解释目前我还没有在网络上或者哪里找到,有时间我要查看一下Windows API命令大全。

这里我又要忍不住提到微软的MSDN了。

<MSDN库中的相应解释>

本来遇到不懂的问题就已经很蛋疼了,看到微软官方提供的文档这么解释,我立马就听到了蛋碎的声音。不是指我看不懂英文,而是这解释也太不详细了吧?微软推出了Windows API,那么理应微软的解释是最官方的解释。可是这种解释也太民间了。反正我对微软各种有意见。

Pelles C编译时出现的“POLINK: fatal error: 拒绝访问”问题的一种可能成因的更多相关文章

  1. Sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法

    Sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法 最近几天从网上找了几个asp.net的登录案例想要研究研究代码,结果在用 Sql Server2005附 ...

  2. SQLServer2005+附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法

    SQLServer2005+ 附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法 我们在用Sql SQLServer2005+附加数据库文件时弹出错误信息如下图的处理办法: 方案一: ...

  3. [经使用有效]Sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法

    sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法 最近几天从网上找了几个asp.net的登录案例想要研究研究代码,结果在用 Sql Server2005附 ...

  4. 解决SQL SERVER数据库备份时出现“操作系统错误5(拒绝访问)。BACKUP DATABASE 正在异常终止。”错误的解决办法

    SQL SERVER数据库进行备份时出现“操作系统错误5(拒绝访问).BACKUP DATABASE 正在异常终止.”错误.我们应该如何解决这个问题?小编今天为大家推荐一个解决办法. 一般备份文件选择 ...

  5. 编译Cython代码时遇到的问题: fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'

    使用python setup.py build_ext --inplace命令编译cython代码, 出现以下错误: Compiling cython_example.pyx because it c ...

  6. Centos 7.5源码编译安装zabbix4.0报fatal error: mysql.h: No such file or directory

    系统环境:CentOS 7.5是最小化安装的 编译信息 编译选项: root@Server01 zabbix-]# ./configure --prefix=/usr/share/applicatio ...

  7. cocos2d-x 移植到android中编译的一些问题:fatal error: Box2D/Box2D.h: No such file or directory&quot;

    1.fatal error: Box2D/Box2D.h: No such file or directory" 须要加入box2d库的支持,改动android.mk文件,例如以下: 查看文 ...

  8. “fatal error C1010”错误解决的三种方法

    尝试写了一个简单的类文件,但在编译的时候提示错误,具体错误信息如下: fatal error C1010: unexpected end of file while looking for preco ...

  9. Jmeter保存时,完美解决提示的“拒绝访问”

    使用Jmeter时,想保存测试计划,提示"拒绝访问“,这是为啥? 因为给Jmeter的权限不够,也就是说,在打开它的时候,直接双击打开,没有选择”以管理员身份运行“,就会导致”拒绝访问“ ! ...

随机推荐

  1. 实验3、Flask数据库操作-如何使用Flask与数据库

    1. 实验内容 数据库的使用对于可交互的Web应用程序是极其重要的,本节我们主要学习如何与各种主要数据库进行连接和使用,以及ORM的使用 2. 实验要点 掌握Flask对于各种主要数据库的连接方法 掌 ...

  2. windows 7系统安装与配置Tomcat服务器环境

    windows 7系统安装与配置Tomcat服务器环境 学习了一个月的java基础,终于要迈向java web领域.学习java web开发就离不开服务器的支持,由于本人是菜鸟,只好求助度娘谷哥.在此 ...

  3. 「JVM」知识点详解一:JVM运行原理详解

    前言 JVM 一直都是面试的必考点,大家都知道,但是要把它搞清楚又好像不是特别容易.JVM 的知识点太散,不系统,今天带大家详细的了解一下jvm的运行原理. 正文 1 什么是JVM? JVM是Java ...

  4. Linkerd 2.10(Step by Step)—将 GitOps 与 Linkerd 和 Argo CD 结合使用

    Linkerd 2.10 系列 快速上手 Linkerd v2.10 Service Mesh(服务网格) 腾讯云 K8S 集群实战 Service Mesh-Linkerd2 & Traef ...

  5. 【模板】 RMQ求区间最值

    RMQ RMQ简单来说就是求区间的最大值(最小值) 核心算法:动态规划 RMQ(以下以求最大值为例) F[i,j]表示 从 i 开始 到i+2j -1这个区间中的最大值 状态转移方程 F[i,j]=m ...

  6. [源码解析] 深度学习分布式训练框架 horovod (7) --- DistributedOptimizer

    [源码解析] 深度学习分布式训练框架 horovod (7) --- DistributedOptimizer 目录 [源码解析] 深度学习分布式训练框架 horovod (7) --- Distri ...

  7. excel VBA中正则模块vbscript.regexp的用法

    一.是一个对象,用于执行 正则表达式! 二.有三个属性:      1. Global属性: True or False, 指明模式是匹配整个字符串中所有与之相符的地方还是只匹配第一次出现的地方.默认 ...

  8. .net core 支付宝,微信支付 三

    支付回调: 获取HttpRequest的body内容,之前使用Request.Form有时候数据请求不到(可能是跟.net core 版本有关?) var s = HttpRequest.Body; ...

  9. 100、nginx_https安全链接配置

    100.1. tcp的三次握手和四次挥手的过程: 1.三次握手(建立连接): 第一次:建立连接时,客户端发送SYN包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认: 第二次:服务器 ...

  10. 9.6、zabbix监控总结

    1.自动发现和自动注册的区别: (1)自动发现: 1)用于zabbix-agent的被动模式,是zabbix-server主动去添加主机.在web上创建自动发现的规则 后,zabbix-server会 ...