CNDEV
CNDEV.ORG
当前在线
论坛
CBD
程序员情感CBD
程序员见面交流会
CBD开发区
Java/J2ME
.NET/C#
数据库
Delphi/BCB
Visual C
其它
修真养身
中国象棋
纪念日
谈钱太俗,还是投机吧
听音乐
iCosta
资源共享
一隅
好文共赏
看电影看美剧
待定
狗屎
雪域召唤
工作流
专业显摆区
语录
情感
批评与自我批评
爱情故事
发牢骚
看三点区
游戏
CNDEV-CS/WOW
浩宇长空
生活
家有XPH
我爱学英语
美食天地ORG
半调子体育迷
观澳园友邻
搞笑奇文
拍照片
我读书我存在
论坛系统
超级垃圾站
系统建议及BUG
系统测试
中国开发网
: 论坛:
Delphi/BCB
: 贴子 510166
没脾气2x
: 看不懂耶~
[阅读: 470] 2007-05-14 04:12:10
<空>
相关信息:
【技术铁】处理消息的时候栈溢出,找不到错误的原因,各位大善人帮帮藕啊!快疯了的说。。
(2272字)
(
龙之吻
[1237]
2007-05-14 11:57
)
看不懂耶~
(空) (
没脾气2x
[469]
2007-05-14 12:12
)
lstrcpyn?
(空) (
amo
[641]
2007-05-14 12:12
)
,这个可疑,不知道delphi里的怎么定义的,但是lstrcpyn(tnd.szTip, '自动更新程序', sizeof(tnd.szTip));这样的写法,龙之吻是不是没搞清l……
(空) (
周星驰
[819]
2007-05-14 12:29
)
lstrcpyn的用法啊?
(空) (
周星驰
[1036]
2007-05-14 12:29
)
而且你用sizeof(tnd.szTip)来指定要copy的字串长度(我猜是这个意义),一定等于'自动更新程序'的长度?tnd.szTip是C类型字串?那么也可能越界。
(空) (
周星驰
[573]
2007-05-14 12:34
)
function lstrcpyn; external kernel32 name 'lstrcpynA';
(111字)
(
龙之吻
[734]
2007-05-14 12:41
)
你先看看 sizeof(tnd.szTip) 是多长吧。
(空) (
没脾气2x
[525]
2007-05-14 12:43
)
这也是容易出错的地方,字符串长度一般是会用length()得到
(空) (
amo
[635]
2007-05-14 12:44
)
他的代码怎么是好的?我觉得好像不是这个地方,好像是procedure TfrmMain.MyNotify(var Message: TMessage);这里的
(457字)
(
龙之吻
[661]
2007-05-14 12:46
)
你的 sizeof 和他的 sizeof 用的不是一个地方啊
(空) (
没脾气2x
[501]
2007-05-14 12:48
)
sizeof 有可能他想取的是 array 的长度……,但这样取我不喜欢滴。
(空) (
没脾气2x
[463]
2007-05-14 12:47
)
你的 sizeof 和他的 sizeof 用的不是一个地方啊
(空) (
没脾气2x
[327]
2007-05-14 12:48
)
那么你用错了,查查msdn,还有你的sizeof是包括了0结束符号的长度的,这里应该用你要copy的字串的实际长度。程序切忌想当然地乱写一气,最起码应该文档中确认了用法
(空) (
周星驰
[673]
2007-05-14 12:45
)
如果是unicode,你这里传的sizeof会导致越界
(空) (
周星驰
[519]
2007-05-14 12:51
)
szTip: array [0..63] of AnsiChar;
(空) (
龙之吻
[488]
2007-05-14 13:02
)
你确定了 SizeOf 可以这样用嘛?
(空) (
pcplayer
[503]
2007-05-14 13:09
)
StrPLCopy(tnd.szTip,'自动更新程序', sizeof(tnd.szTip)-1);这样还是不对!
(空) (
龙之吻
[541]
2007-05-14 13:09
)
你查文档了吗?这里可能不是你程序出错的原因,但是却是错误的用法,lstrcpyn( tnd.szTip, "自动更新程序", 7/*不是你程序中的sizeof...*/ )
(空) (
周星驰
[606]
2007-05-14 13:14
)
周星星,delphi 的 lstrcpyn, 后面的 size 是指定缓冲区大小,不是字符串长度。
(空) (
没脾气2x
[698]
2007-05-14 13:16
)
就是这意思
(空) (
龙之吻
[489]
2007-05-14 13:18
)
他这个不是用的windows kernel32.dll里带的吗?是的话就应该这样,要不lstrcpyn后面的n就没意义了
(空) (
周星驰
[723]
2007-05-14 13:19
)
你确定了 SizeOf 可以这样用嘛? (空) (pcplayer [3] 今天 13:09 ) 测量一个 array 的长度应该是 Length
(空) (
pcplayer
[570]
2007-05-14 13:16
)
从代码上没啥问题啊
(空) (
bjwf
[502]
2007-05-14 12:12
)
栈溢出有可能是有了死循环的调来调去。你怎么调用的写出来吧,咯咯
(空) (
没脾气2x
[599]
2007-05-14 13:03
)
如果是溢出,多半是因为自己的代码循环调用自己了
(空) (
pcplayer
[583]
2007-05-14 13:10
)
我怀疑是响应一个消息或激发一个新的消息后,没有设置状态为已处理
(15字)
(
haitao
[571]
2007-05-14 13:11
)
暂时怀疑是这个: inherited Dispatch(Message);
(22字)
(
没脾气2x
[620]
2007-05-14 13:14
)
有可能。建议先去掉这一行看看。说不定就好了
(空) (
pcplayer
[564]
2007-05-14 13:17
)
好了。。。。
(空) (
龙之吻
[468]
2007-05-14 13:19
)
我也觉得是他
(空) (
龙之吻
[498]
2007-05-14 13:17
)
那你不先去掉试试。
(空) (
没脾气2x
[497]
2007-05-14 13:18
)
就是在这里出的错,可是我觉得处理完 我想要的消息,该交给系统处理别的。。。就没注释它
(空) (
龙之吻
[518]
2007-05-14 13:20
)
写错地方了。
(空) (
龙之吻
[550]
2007-05-14 13:23
)
你先看好了是否应该写这个:“Dispatch 方法会根据消息号码调用构件的最后代类中处理此消息的句柄方法”
(空) (
没脾气2x
[531]
2007-05-14 13:31
)
我用的好像不对!
(空) (
龙之吻
[468]
2007-05-14 16:08
)
查了一下,你的 Dispatch的问置或许应该用 DefaultHandler
(空) (
没脾气2x
[532]
2007-05-17 00:52
)
.
(空) (
龙之吻
[462]
2007-05-17 10:30
)
泄泻楼上几位牛,有机会请大家吃包子。。。
(21字)
(
龙之吻
[597]
2007-05-14 13:24
)
欢迎光临本社区,您还没有登录,不能发贴子。请在
这里登录