如题???
解决方案 »
- 怪事!!recv的时候,写入buffer的数据少于recv返回的字节数,甚至buffer是空的!!!!
- C/S构架刷新的问题
- 关于Delphi中如何正确调用BAT
- 请问以下控件在哪里下呢?
- 寻求一个叫drawmaster(symbol editor)的程序源代码
- 小问题
- 2个问题关于(子窗体的
- 一个文件型数据库共享的问题???
- 关于PASCAL的问题
- 新手上路,但是也许高手做不了!进来看看就知道啦,分数不够可以再加!
- 关于用Delphi6.0操作Excel的问题。其实就是有两个属性不知如何设置!请高手指点!
- 请问:写了一个组件,其中的方法耗时大,且方法中有不能使用Application.ProcessMessages语句,有何解?如果我要加入进度条,如何加?
C++ 我不懂,但是看 MSDN 的帮助,record 不行,应该就是 class 了。
a:string;
b:integer;
case c of
0:.....
1:.....
end;
type
AA=record
i,j:integer;
...
end;
很复杂,要经常转换类型时可以改用variant
他们说的只是c里面的struct
那么用时候怎么用呢?
我找到了一个这样的定义:
TMSHMouseWheel = packed record
Msg: Cardinal;
WheelDelta: Integer;
case Integer of
0: (
XPos: Smallint;
YPos: Smallint);
1: (
Pos: TSmallPoint;
Result: Longint);
end;
用时候怎么用呢?case Integer of ……不大理解!
msg: Sizeof(Cardinal) = 4;
WheelDelta: SizeOf(Integer) = 4;
Pos: TSmallPoint = SizeOf(TSmallPoint) = 4;
Result : Sizeof(LongInt) = 4;分配4*4 = 16字节给TMSHMouseWheel的一个变量,其中:
case Integer of
0: (
XPos: Smallint; // 2字节
YPos: Smallint); // 2字节
1: (
Pos: TSmallPoint; // 4字节
Result: Longint); // 4字节
XPos, YPos和Pos其实是保存在同一个内存位置,也就是说:访问XPos, YPos,其时就是访问Pos.X, Pos.Y,与Result无关。case Integer of 只是一个形式,说明下面是分了几种情况,你也可以
case Byte of
case TMydataType of
...再明白的话,我帮你up,看看别人怎么说。不会说c的union也不明白吧。