社区
Windows SDK/API
帖子详情
Windows API中的字节对齐问题?
binbin
2004-04-22 10:31:25
今天突然想到编译器的字节对齐选项是不是会对相关windows api的调用产生影响?
在windows api中有很多需要结构参数,而这些API都是在系统dll中实现的,那么用户程序在编译时选择了不同的对齐方式应该对这些API的调用产生影响吧?那么系统dll内部一般对结构体成员采用什么对齐方式呢?
...全文
78
13
打赏
收藏
Windows API中的字节对齐问题?
今天突然想到编译器的字节对齐选项是不是会对相关windows api的调用产生影响? 在windows api中有很多需要结构参数,而这些API都是在系统dll中实现的,那么用户程序在编译时选择了不同的对齐方式应该对这些API的调用产生影响吧?那么系统dll内部一般对结构体成员采用什么对齐方式呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wyb_45
2004-04-24
打赏
举报
回复
字节对齐一般是在程序里自己定义
struct 结构体时 的sizeof时产生字节对齐的问题
一般是没有问题的
COKING
2004-04-24
打赏
举报
回复
楼上!厉害!!!
FengYuanMSFT
2004-04-24
打赏
举报
回复
Yes. Window normally assumes DWORD alignment.
Header files in Microsoft SDK do not always enforce that.
One structure which could cause problem is OUTLINETEXTMETRIC in wingdi.h. Read page 599 of my book (Chinese translation)
www.fengyuan.com
NowCan
2004-04-23
打赏
举报
回复
举例,Windows.h中,开头有这个一句
#pragma option push -b -a8 -pc -A- /*P_O_Push*/
其中的-a8就是字节对齐,8字节对齐。
然后在最后
#pragma option pop /*P_O_Pop*/
表示上述option到此结束。
thp
2004-04-22
打赏
举报
回复
.
yunuo2010000
2004-04-22
打赏
举报
回复
学习
binbin
2004-04-22
打赏
举报
回复
UP.
jishiping
2004-04-22
打赏
举报
回复
看头文件啊。你查一查 #include <pshpackX.h> (这儿的X为1、2、4、8)和#include <poppack.h> 就知道了。有些结构,本身就不受对齐的影响,所以可以不用特别说明。
qiuafa
2004-04-22
打赏
举报
回复
up
binbin
2004-04-22
打赏
举报
回复
显式的指定了对齐方式,是在头文件中看吗?我在CSDN中没看到,应该怎么看请季头明示,谢谢!
jishiping
2004-04-22
打赏
举报
回复
API函数中用到的结构,都已经显式的指定了对齐方式,不受编译参数中的对齐方式影响。
不过BCB6的有关对齐的头文件有问题,所以需要打补丁SP4才行,当然也可以自己修改头文
件。我在2年前就写了一个帖子说明这个问题了,最近又有人提出来了。最近的帖子为:
http://expert.csdn.net/Expert/TopicView1.asp?id=2983941
Maconel
2004-04-22
打赏
举报
回复
啥意思,没看懂,举个例子
binbin
2004-04-22
打赏
举报
回复
怎么偶问的问题都没人应???
偶开始怀疑是不是偶的脑筋有问题?
字节跳动Vue3框架ArcoDesign Pro整合实战:前端篇
主要服务于字节跳动旗下
中
后台产品的体验设计和技术实现,主要由UED设计和开发同学共同构建及维护。【前端技术】Vue 互联网最火的前端框架Vue Router路由框架Vuex...
C语言
字节对齐
问题
详解(对齐、字节序、网络序等)
一 什么是
字节对齐
现代计算机
中
,内存空间按照字节划分,理论上可以从任何起始地址访问任意类型的变量。但实际
中
在访问特定类型变量时经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列...
程序人生 | C语言
字节对齐
问题
详解 - 对齐/字节序/位序/网络序等(下)
对于多字节数据,如整型(32位机
中
一般占4字节),在不同的处理器的存放方式主要有两种(以内存
中
0x0A0B0C0D 的存放方式为例)。在计算机
中
,存储介质以下面方式存储整数 0x0A0B0C0D,则称为大字节序:其
中
,最高...
C语言
字节对齐
详解
但实际
中
在访问特定类型变量时经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序一个接一个地存放,这就是对齐。有些信息在存储时,并不需要占用一个完整的字节,而只需占几个...
C语言
字节对齐
问题
详解
clover_toeic 博客园 首页 新随笔 联系 管理 ...C语言
字节对齐
问题
详解 引言 考虑下面的结构体定义: 1 typedef struct{ 2 char c1; 3 short s; 4 char c2; 5 int i; 6 }T_FOO...
Windows SDK/API
1,221
社区成员
8,136
社区内容
发帖
与我相关
我的任务
Windows SDK/API
C++ Builder Windows SDK/API
复制链接
扫一扫
分享
社区描述
C++ Builder Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章