50分循环的问题,不知是什么原因(50分)

  • 主题发起人 主题发起人 Txh2005
  • 开始时间 开始时间
呵呵,再次感谢大家的关注,向各位汇报一下
这段代码我已经交差了,就是加一句强制中断或者改用While,只是我为此感到很郁闷

其实大家担心的combobox的值会改变是不可能的,我也赞成黑星星的说法是对的。
在他循环的时候就算我想点也点不了的。

application.ProcessMessages这句我是想在循环的时候让系统也能够响应其他事件
比如最大化、最小化,拖动窗体位置等,不至于界面看起来那么死板。其实用不用都
一样,屏蔽掉也是一样的问题

关于zqw0117堆栈的说法,我试了一下,也还是一样。
关于怀疑ilovedephibbs的,如下
Delphi中调用申明
function ilovedephibbs(P, S, B: integer; var arr: array of char): integer; stdcall; external 'mydll.dll';
dll中的输出申明,是c++builder写的
extern "C" int _dllexport ilovedephibbs(int,int,int,char *);

这个问题大家都觉得不可能,包括我自己,呵呵,我的DLL每次返回值是正确的,
我的K值是有限制的,K值就是0到2,>2时DLL就会返回失败(返回DDL中定义的那
几种失败的值),这个在listbox输出时也都看的到的,to kinneng 我说的K值会
无限大下去,是真的。如果那位有时间,我可以让他远程控制我的电脑看看,我只想
弄个明白,谢谢大家
 
如果正如楼主所说,K 会无限大下去,只能解释为 Delphi 的 Bug 了。
 
你懂汇编吗?打开CPU窗口慢慢跟踪看看怎么回事,K在循环体内是只读的,读K的时候,就会到for to的临时变量(暂存地址)取数,知道那个地值,看看谁往它写数,不久真相大白了么,可惜你的程序与硬件有关,我没条件来试验,远程也看不出什么问题来的。
 
呵呵,如果这是Bug的话,我觉得很恐怖,
to kinneng 我不太懂汇编,如果你有时间和兴趣的话,可以QQ联系,我把硬件和程序接好,
你就可以远程控制我的电脑了,就是这么一个简短的代码,就像操作本机一样,
545144368这个是我的QQ,谢谢大家
 
我测试没有发生如楼主所说的情况
 
function ilovedephibbs(P, S, B: integer; var arr: array of char): integer; stdcall;
extern "C" int _dllexport ilovedephibbs(int,int,int,char *);
这样就不对了,最后一个参数不是传值参数,故,不能加var,必须在声明的时候去掉var,最好别声明成array of char,这个和Pcha好像还是不兼容的,几次我调用C的函数声明array of char就出错(抱歉我也不敢我说的一定是对的,因为我很少用C,仅供楼主参考)。正确的声明可能如下:
function ilovedelphibbs(p, s, b, Integer, arr: PChar): integer; stdcall;
 
多人接受答案了。
 
后退
顶部