发信人: 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]
  | 
 
 
 |