社区
Delphi
帖子详情
呵呵,比较陌生的问题!(流,TMemoryStream)
aaronzhang
2001-08-17 11:04:46
各位大虾: 我定义了一个流MySream: TMemoryStream,不知道MyStream可不可以用来作为参数而在函数中传递。我又作了一个DLL函数,里面有一个过程是以MyStream为参数的,但是在调试的时候老是报错,我看了看好像和这个流有关,意思好像是说这个流不存在了或是出了什么问题了,不知道大家有没有遇到过这种情况?(这个MyStream是用来存放从UDP口读进来的数据的流)。
...全文
219
16
打赏
收藏
呵呵,比较陌生的问题!(流,TMemoryStream)
各位大虾: 我定义了一个流MySream: TMemoryStream,不知道MyStream可不可以用来作为参数而在函数中传递。我又作了一个DLL函数,里面有一个过程是以MyStream为参数的,但是在调试的时候老是报错,我看了看好像和这个流有关,意思好像是说这个流不存在了或是出了什么问题了,不知道大家有没有遇到过这种情况?(这个MyStream是用来存放从UDP口读进来的数据的流)。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
铛铛爸爸
2001-09-25
打赏
举报
回复
GZ
aaronzhang
2001-08-18
打赏
举报
回复
ok,结账
copy_paste
2001-08-17
打赏
举报
回复
是在DLL调用中传递中,一般在DLL传递的是Pointer, Number, Record,其它的一般尽可能的用它们来代替。
Tense
2001-08-17
打赏
举报
回复
DLL中也可以使用任何流,传递没有错误,
只是你要看看参数有没有用错.
yypp
2001-08-17
打赏
举报
回复
流绝对是可以做参数传递的
我就 做过
//***************************************************************************
//流压缩函数
//***************************************************************************
procedure CompressBitmap(var CompressedStream: TMemoryStream;const
CompressionLevel: TCompressionLevel);
var
SourceStream: TCompressionStream;
DestStream: TMemoryStream;
Count: Integer;
Begin
//获得图像流的原始尺寸
Count := CompressedStream.Size;
DestStream := TMemoryStream.Create;
SourceStream:=TCompressionStream.Create(CompressionLevel, DestStream);
Try
//SourceStream是原始的图像流
CompressedStream.SaveToStream(SourceStream);
//将原始图像流进行压缩,DestStream中是压缩后的图像流
SourceStream.Free;
CompressedStream.Clear;
//写入原始图像的大小
CompressedStream.WriteBuffer(Count, SizeOf(Count));
//写入经过压缩的图像流
CompressedStream.CopyFrom(DestStream, 0);
finally
DestStream.Free;
end;
end;
/////////用流做参数来调用函数/////////////
jpg.SaveToStream(BmpStream);
CompressBitmap(BmpStream, clMax); //按照最大压缩比进行压缩
bokei
2001-08-17
打赏
举报
回复
在传入DLL前可能改用array of char来存放数据较好,这样传递一个指针就可以了.TMemoryStream的Read和ReadBuffer函数可以很容易做到这点
在DLL里尽量用通用的数据类型较好.
blackfiles
2001-08-17
打赏
举报
回复
用Variant变量来传递。
Fairton
2001-08-17
打赏
举报
回复
好象用DLL不能把TMemoryStream做参数
因为它是一个Class吧
可能跟数据访问有关
phaqyxiao
2001-08-17
打赏
举报
回复
所有数据类型都可作为函数的参数,不知道你的问题具体怎样?
copy_paste
2001-08-17
打赏
举报
回复
在DLL传类对象,不太会,你不如把MyStream.Memory作为Pointer传给DLL,然后再传回来一试。
aaronzhang
2001-08-17
打赏
举报
回复
我将MyStream设为全局变量,已经在FormCreate的时候Create了
:)
yypp
2001-08-17
打赏
举报
回复
你好象没有Create吧?
MyStream:=TMemoryStrem.Create;
试一试
jxd_2001
2001-08-17
打赏
举报
回复
gz
aaronzhang
2001-08-17
打赏
举报
回复
天那!不会没有人懂了吧?
aaronzhang
2001-08-17
打赏
举报
回复
没人来吗?
aaronzhang
2001-08-17
打赏
举报
回复
我在主程序里这样写的:
procedure TForm1.CMUDPDataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String; Port: Integer);
var
MessageId:byte;
MyStream :TMemoryStream;
begin
CMUDP.ReadStream(MyStream);
UDPDataReceived(MyStream); //这个函数就是TDll.dll里面的函数,参数定义肯定没错
//它所做的就是 MyStream.Seek(1,SoFromBeginning);
// MyStream.Read(Id,1);
//id是这个流里面的参数。我如果放在一起不用DLL的话就是
//对的。调试的时候指向我的语句
//MyStream.Seek(1,SoFromBeginning);有错误。大家觉得
//是什么原因?我通过了一个ImportDll的.pas文件做为接口
//文件。不明白是哪里错了!
end;
UG 2023 64bit 64 位系统设计软件.rar
UG NX 2023(Unigraphics NX,中文名交互式 CAD/CAM 系统),是西门子 Siemens PLM Software 研发的 CAD/CAE/CAM 一体化产品工程解决方案,提供全套数字化造型与仿真验证手段。软件功能强悍,可轻松完成各类复杂实体、曲面造型构建,广泛应用于机械装备、塑胶模具、汽车零部件、航空航天、数控加工、钣金设计等工业领域。 软件仅支持 Win10、Win11 64 位系统,不再兼容 Win7,硬件配置要求适中。软件集三维建模、工程制图、数控编程、力学与运动仿真等功能于一体,可兼容各类主
流
设计文件格式。 该版本优化了装配加载速度、曲面建模能力与刀路算法,运行稳定,是当下行业主
流
版本。 由于安装包文件过大,CSDN 无法直接上传,附件提供下载链接及配套安装教程,欢迎下载使用。
vivado XADC IP核使用教程
vivado XADC IP核使用教程
64 位 NX2023 UG 主
流
行业版本 无偿持续分享.rar
UG(Unigraphics NX)是一款由西门子(Siemens PLM Software)开发的交互式CAD/CAM/CAE系统。作为全球领先的产品工程解决方案,它集成了产品设计、工程仿真与制造加工于一体。其功能强大且应用广泛,能够轻松实现各种复杂实体和造型的构造,为模具、汽车、航空航天及通用机械等行业提供了高性能的机械设计与制图灵活性。
【变压器的开路试验】变压器进行开路试验时的电路连接配置(Simulink仿真实现)
内容概要:本文详细介绍了利用Simulink进行变压器开路试验的电路连接配置与仿真实现方法,重点在于通过仿真手段还原实际电力系统中变压器在空载条件下的电气特性,从而深入理解其工作原理与性能表现。文章作为电力系统仿真系列研究的一部分,系统阐述了从电路模型搭建、参数设定、仿真运行到结果分析的完整
流
程,突出展示了MATLAB/Simulink在电力设备建模与教学科研中的强大功能与应用价值。; 适合人群:具备电力系统基础知识,熟悉MATLAB/Simulink仿真环境,从事电气工程、自动化及相关领域的研发人员,以及高年级本科生和研究生。; 使用场景及目标:①掌握变压器开路试验的基本原理与Simulink仿真建模的具体步骤;②通过仿真实验深入理解空载电
流
、铁芯损耗及励磁特性等关键参数的物理意义;③为后续开展变压器短路试验、暂态过程分析以及其他电力设备的仿真研究奠定理论与实践基础。; 阅读建议:建议结合Simulink软件动手实践,逐步构建并调试电路模型,重点关注各元件参数的设置方法与测量模块的应用技巧,同时推荐参考文中提及的其他相关仿真案例进行拓展学习,以全面提升对电力系统仿真实践的整体认知与操作能力。
SoloBlog.zip
SoloBlog.zip
Delphi
5,943
社区成员
262,943
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章