zoukankan      html  css  js  c++  java
  • VC++替换控件ID引发的错误

    我在用vc 6.0开发程序的时候,发现载入图片的ID总是出现错误,很费解!!

    后来经过调试与修改,终于了解一些内容。

    为了获取方便,我将所有的ID号分类存储到一个类的const static变量中,这样便于循环遍历操作,但是这却引来了一个问题。

    由于C++采用预编译的方式类进行修改,当这个类做完后编译变量值就已经确定了。

    当我处理界面的时候,发现这个界面的控件使用的不是那么确切,删除界面上的控件,再将控件ID修改为原先的ID,这样,代码
    中的很多内容就不需要修改了,这个时候,由于原先编译的const static变量的值是原先的值,而新增加控件的ID的值可能并不
    是原先同名ID的值,这个时候,程序代码跑起来的时候,就会出现assert之类的错误了!!!

    比方说我现在由一个CButton的控件ID(IDC_SHOW_MESSAGE),但是感觉用的不是那么确切,而系统中有另外一个控件类型CStatic,
    这个时候,我删除在界面上CButton的控件,将CStatic的控件放置上去,将CStatic的ID修改为IDC_SHOW_MESSAGE,此时如果编译
    运行,极有可能原先CButton的IDC_SHOW_MESSAGE与CStatic的IDC_SHOW_MESSAGE不是同一个数据值,而预编译的值还是原先的那个
    值,此时可以通过这么一种方式来解决该问题:

    先在定义const static 变量处打个空格之类的,然后修改控件IDC_SHOW_MESSAGE为其他的一个名字,之后修改为IDC_SHOW_MESSAGE
    名称,编译运行,就可以解决上面的异常错误问题了!!!


    很隐蔽,代码并没有错误,只是编译器的一个特性导致的一个问题。

  • 相关阅读:
    idea 使用jedis连接不上 redis解决办法
    EFCore 连接 MySql 间歇性报错:你的主机中的软件中止了一个已建立的连接
    初学Ansible(管理Window主机)
    茹炳晟-API自动化测试笔记
    Xpath路径
    kibana Dev Tools --常用命令
    kibana Dev Tools--修改语句示例
    kibana Dev Tools--增删改查语句
    记一次出名记录
    脚本:bat实现自动转换windows远程端口
  • 原文地址:https://www.cnblogs.com/ubunoon/p/1402838.html
Copyright © 2011-2022 走看看