起步软件技术论坛-X3

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: lirq

【结】[请求]厂家发来个DLL文件,想把它放到思维加速中 (新增加一个问题,请版主查看)

[复制链接]
发表于 2010-3-26 15:14:07 | 显示全部楼层
stuido中写的代码是不能传指针的,
   不过参照楼主的用法,那个指针可能就是个二进制流,用TMemoryStream类型替换吧!就用Stream的Read的方法就可以把指针指向的内容读到Stream中去,详细的TStream的用法可以参考Delphi的帮助文档!或是google上搞到例子!
    至于是否要改控件的源代码不确定,但可以自己写个控件来包装当前这个控件,把所有对指针的调用转换成对类或值的调用!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-26 16:50:31 | 显示全部楼层
控件源文件里是这样写的:
TReceiveDataEvent = procedure(Sender: TObject; Buffer: Pointer;
                                  BufferLength: Word) of object;
我要怎么把指针传到class里面去,又怎么才能在思维加速当中取到指针的内容呢。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-26 17:16:31 | 显示全部楼层
呼唤版主
再重新写个控件?天啊,好巨大的工程。
现在外部设备可以接收到指令,为什么平台收不到外部设备发回的指令啊。在DELPHI只用一句就可以了,如下:move(Buffer^,rbuf,BufferLength);
为什么在平台中这么难办到呢。或者发个类似的例子看看也行。
回复 支持 反对

使用道具 举报

发表于 2010-3-26 17:23:13 | 显示全部楼层
平台中不支持指针,没办法取到指针中的内容!所以所有关于指针的操作都要包装!手中没有类似的例子!关于指针的操作看一下TMemoryStream的实现或帮助!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-26 17:24:49 | 显示全部楼层
怎么包装啊,我没弄过,您帮忙包装下吧。

spcomm.rar

12.82 KB, 下载次数: 53

回复 支持 反对

使用道具 举报

发表于 2010-3-26 17:29:54 | 显示全部楼层
我看看,下周给信儿行不!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-26 17:32:24 | 显示全部楼层
好的。谢谢。
不过能明天吗?这块用户要的挺急的,本来以为很简单的,没想到这么复杂。时间没掌握到。
回复 支持 反对

使用道具 举报

发表于 2010-3-27 10:41:55 | 显示全部楼层
只能周一了,不好意思
回复 支持 反对

使用道具 举报

发表于 2010-3-29 08:44:31 | 显示全部楼层
我没有设备所以没有办法测,现在在代码里把那个指针去掉了,您再重新引入生成dll,然后调试了看看吧!

spcomm.rar

12.88 KB, 下载次数: 54

回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-29 10:13:07 | 显示全部楼层
好的。非常感谢SMP
任务比较急,周六研究了下,该问题已经解决。
结贴。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-10 01:31 , Processed in 0.046033 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表