3116|2

73

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

异常求助 [复制链接]


  1. ((CBitmapButton*)GetDlgItem(ctrId))->LoadBitmaps(resId,0,0,0);
复制代码


以上代码反复执行几次就会出现以下异常。

First-chance exception in Ad.exe:0x80000002:Datatype Misalignment


我试过网上的方法但是还是不行,有网友说是指针不能瞎转。


以下是网上的解决办法:
Datatype misalignment竟然是ARM著名的一个问题.解释大致是ARM要求每个变量都需要4Bytes倍数对齐,VC缺省时8Byte对齐,ARM的编译器和x86的不太一样,不会取整,所以有小于32位的变量的话,后边的一个变量会被截断,最好的办法是32位。Project Settings -> C/C++ -> Code Generation 设置为struct member alignement 1.或者采用#prgma pack设置结构的对齐字节数。如下:

#pragma pack(1)
// Definition structure/classe align is 1 byte
#pragma pack()

最新回复

个人觉得你的代码是没有问题的 或者你这样写 CWnd *pWnd = GetDlgItem(ctrId); if (pWnd->IsKindOf(RUNTIME_CLASS(CBitmapButton))) {     ((CBitmapButton*)GetDlgItem(ctrId))->LoadBitmaps(resId,0,0,0); } 看看还会不会出错  详情 回复 发表于 2009-12-4 21:13
点赞 关注

回复
举报

79

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
深奥,帮顶了,学习
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
个人觉得你的代码是没有问题的
或者你这样写
CWnd *pWnd = GetDlgItem(ctrId);
if (pWnd->IsKindOf(RUNTIME_CLASS(CBitmapButton)))
{
    ((CBitmapButton*)GetDlgItem(ctrId))->LoadBitmaps(resId,0,0,0);
}
看看还会不会出错
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条
电源解决方案和技术 | DigiKey 应用探索站
当月好物、电源技术资源、特色活动、DigiKey在线实用工具,干货多多~

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表