准备做多线程 ,使用函数 creatThread 函数,要往其传递参数,所以
1.首先定义一个记录指针
type
MyParam = record
ffirst :string[255];
fsn:string[255];
fip:string[255];
fzjmc:string[255];
end;
pMyparam = ^Myparam;
2.向其传入参数
var
p : Pmyparam;
New(p);
pmyParam(p)^.ffirst := '0';
Pmyparam(p)^.fsn := lsn;
Pmyparam(p)^.fzjmc := lzjmc;
Pmyparam(p)^.fip := lIp; CreateThread(nil, 0, @dealdata, p, 0, id);
3.在线程函数中接受参数
function dealdata(p:pMyparam :longint:stdcall;
begi lfirst := pmyParam(p)^.ffirst;
end;
问题出现了:
每个记录指针的第一个字段获不到正确值 ,是一堆乱码,其他字段数据获取正常!
为什么,是不是delphi 记录指针的bug????
1.首先定义一个记录指针
type
MyParam = record
ffirst :string[255];
fsn:string[255];
fip:string[255];
fzjmc:string[255];
end;
pMyparam = ^Myparam;
2.向其传入参数
var
p : Pmyparam;
New(p);
pmyParam(p)^.ffirst := '0';
Pmyparam(p)^.fsn := lsn;
Pmyparam(p)^.fzjmc := lzjmc;
Pmyparam(p)^.fip := lIp; CreateThread(nil, 0, @dealdata, p, 0, id);
3.在线程函数中接受参数
function dealdata(p:pMyparam :longint:stdcall;
begi lfirst := pmyParam(p)^.ffirst;
end;
问题出现了:
每个记录指针的第一个字段获不到正确值 ,是一堆乱码,其他字段数据获取正常!
为什么,是不是delphi 记录指针的bug????
解决方案 »
- 程序运行提示"没有注册类别",寻找了许久都没有找到问题根源。
- 登陆的时候那个:两周之内不用登陆是什么意思啊?
- 字符串分割问题
- 高分相赠,例如在WORD等文档处理软件中工具栏有一个快速设置字体等颜色的按钮,请问DELPHI是否也有这种控件?如果答对100分全给,不够另
- 连接不到数据库出错,怎样解决啊?
- 关于TStringGrid显示的一个问题
- 如何执行TEmbeddedWB下的GetExternal
- 批量对大量图像旋转,剪切后,如何释放资源
- 谁能帮我说说actionlist和actio管理器的用法,以前没有遇到过这样的东西!谢谢!
- 关于16进制转换成10进制的问题(怎么样才能更优的完成)。。。。。。。。。。
- 导出excel 为只读
- DELPHI编程如何实现数据库结构的扩展及相关操作
可以试试会不会解决你的问题。
还有同问一下:为什么不直接用TThread类
碰到问题多查下自己代码的问题先
p : Pmyparam;
New(p);
Fillchar(p^, sizeof(Myparam),0);//加这句试试
pmyParam(p)^.ffirst := '0';