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

Building NEWprogram2.exe.

POLINK: fatal error: 拒绝访问。

*** Error code: 1 ***

Done.

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

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

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

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

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

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

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

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

<以下解释来源于网络>

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

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

  1. 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. 【NX二次开发】获取两个面之间的所有面

    已知两个蓝色面,使用遍历面的方法求紫色面.算法例子: 1 bool is_NeighborFace(tag_t tagFace1, tag_t tagFace2) 2 { 3 vector<ta ...

  2. 带你认真了解一下Java分布式系统的基本特性

    一般,分布式系统需要支持以下特性: 资源共享 开放性 并发性 可伸缩性 容错性 透明性 下面分别讨论. 容易理解的 资源共享 一旦授权,可以访问环境中的任何资源 资源:包括硬件(e.g. printe ...

  3. 【模拟8.10】Weed(线段树)

    考试只好随便骗骗分过去啦啦啦..... 正解是玄学线段树: 以每个操作为叶子节点,我们定义几个变量ce表示层数,h表示高度,add表示所减的层数 那么问题转化为单点修改的问题输出直接是根节点答案 但是 ...

  4. Linux shell是什么

    shell概念: shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell启动,挂起,停止甚至编写一些程序. shell还是一个功能强 ...

  5. Golang编写Windows动态链接库(DLL)及C调用范例

    一.准备. 1.GoLang在1.10版本之后开始支持编译windows动态链接库,可以打开命令行工具使用go version 查看自己的go版本. 2.你的电脑上需要gcc,如果没有的话[点击这里] ...

  6. 手摸手,带你用Beego撸商城系列一(基础篇)

    完整项目地址: go-shop-b2c 系列文章: 手摸手,带你用 Beego撸商城 系列一(基础篇) 手摸手,带你用 Beego撸商城 系列二(登录篇) 手摸手,带你用 Beego撸商城 系列三(系 ...

  7. Vue(12)组件的组织结构和组件注册

    组件的组织 通常一个应用会以一棵嵌套的组件树的形式来组织: 例如,你可能会有页头.侧边栏.内容区等组件,每个组件又包含了其它的像导航链接.博文之类的组件. 为了能在模板中使用,这些组件必须先注册以便 ...

  8. 【原创】Ingress-Nginx-Controller的Metrics监控源码改造简析

    一.背景 目前我们的生产环境一层Nginx已经容器化部署,但是监控并不完善,我们期望其具有Ingress-Nginx-Controller组件上报监控的数据.这样可以建立请求全链路的监控大盘.有利于监 ...

  9. 单片机引脚扩展芯片74HC595手工分解实验

    我们先来看下效果 74HC595是常用的串转并芯片,支持芯片级联实现少量IO口控制多个IO口输出功能 14脚:DS,串行数据输入引脚 13脚:OE, 输出使能控制脚,它是低电才使能输出,所以接GND ...

  10. 44、wget和curl的常用参数

    1.wget: wget是文件下载的工具: 不加任何参数是直接下载该文件: (1)-O: 将下载的文件指定为特定的文件名: wget -O baidu.html www.baidu.com --201 ...