发信人: jonathany()
整理人: wenbobo(2002-12-06 22:50:00), 站内信件
|
Sub:VC6.0的BUG吗?
以下是一个结构体,在VC6.0中
struct MenusIM
{
short No;
char Items[40];
char AlterMessage[80];
float DValue;
char txtFileName[20];
};
运行sizeof(MenusIM) 结果是148!
但是应该是146的呀?!
请高手指教!!!
-- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.185.21] 发信人: kentucky (older than the tree), 信区: C 标 题: Re: VC6.0的BUG吗? 发信站: 网易 BBS (Tue Apr 27 12:03:24 1999), 转信
【 在 jonathany (Jona) 的大作中提到: 】 : Sub:VC6.0的BUG吗? : 以下是一个结构体,在VC6.0中 : struct MenusIM : { : short No; : char Items[40]; : char AlterMessage[80]; : float DValue; : char txtFileName[20]; : : }; : 运行sizeof(MenusIM) 结果是148! : 但是应该是146的呀?! : 请高手指教!!!
如果你要保证结构的大小和你的定义一致的话, 定义 #pragma pack(1) 缺省的时候,VC的结构是按4个字节对齐的,因此为了处理其他结构时 得到高效率,在如上的pack(1)将按字节对齐方式给该结构定义后, 应该恢复缺省定义 #pragma pack() 即如下形式:
#pragma pack(1) struct... typedef ...(定义一个或多个你要按字节分配内存的结构) #pragma pack()
-- ※ 来源:.网易 BBS bbs.netease.com.[FROM: 202.104.64.36] 发信人: wingman (飞剑客), 信区: C 标 题: Re: VC6.0的BUG吗? 发信站: 网易虚拟社区 (Tue Apr 27 12:30:45 1999), 站内信件
【 在 jonathany (Jona) 的大作中提到: 】
: Sub:VC6.0的BUG吗?
: 以下是一个结构体,在VC6.0中
: struct MenusIM
: {
: .......
可在Project->Setting->C/C++->Code Generation中设置
-- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.97.55] 发信人: smallboy (forfor), 信区: C 标 题: 关于unicode的转换 发信站: 网易虚拟社区 (Tue May 4 11:40:48 1999), 站内信件
如何在C程序中,动态的根据需要,进行ASCII与UNICODE之间的转换?
-- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.101.101.133] 发信人: haoler (昊子), 信区: C 标 题: Re: 关于unicode的转换 发信站: 网易虚拟社区 (Thu May 6 19:20:07 1999), 站内信件
【 在 smallboy (forfor) 的大作中提到: 】
: 如何在C程序中,动态的根据需要,进行ASCII与UNICODE之间的转换?
什么是unicode 的定义?
记得有一种编码,所有的8位字节排在一起,然后用7位去切。
是不是这样?如果这样编程到简单。
-- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.99.105.234] 发信人: ken_qian (<marquee>杀意隆), 信区: C 标 题: Re: 关于unicode的转换 发信站: 网易虚拟社区 (Thu May 6 19:22:18 1999), 站内信件
【 在 smallboy (forfor) 的大作中提到: 】
: 如何在C程序中,动态的根据需要,进行ASCII与UNICODE之间的转换?
The WideCharToMultiByte function maps a wide-character string
to a new character string. The new character string is not ne-
cessarily from a multibyte character set.
int WideCharToMultiByte( UINT CodePage, // code page
DWORD dwFlags, // performance and mapping flags
LPCWSTR lpWideCharStr, // address of wide-character string
int cchWideChar, // number of characters in string
LPSTR lpMultiByteStr, // address of buffer for new string
int cchMultiByte, // size of buffer
LPCSTR lpDefaultChar, // address of default for unmappable
// characters
LPBOOL lpUsedDefaultChar // address of flag set when default
// char. used);
The MultiByteToWideChar function maps a character string to
a wide-character (Unicode) string. The character string mapped
by this function is not necessarily from a multibyte character
set.
int MultiByteToWideChar( UINT CodePage, // code page
DWORD dwFlags, // character-type options
LPCSTR lpMultiByteStr, // address of string to map
int cchMultiByte, // number of bytes in string
LPWSTR lpWideCharStr, // address of wide-character buffer
int cchWideChar // size of buffer);
抄了一段Winapi的说明。
wink
Ken
99/05/06
20:26
-- 杀意隆象一匹寂寞的狼,对着寂寞的苍穹、寂寞的皓月,作他的寂寞长嚎。
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 210.175.4.210]
|
|