社区
Delphi
帖子详情
呵呵,比较陌生的问题!(流,TMemoryStream)
aaronzhang
2001-08-17 11:04:46
各位大虾: 我定义了一个流MySream: TMemoryStream,不知道MyStream可不可以用来作为参数而在函数中传递。我又作了一个DLL函数,里面有一个过程是以MyStream为参数的,但是在调试的时候老是报错,我看了看好像和这个流有关,意思好像是说这个流不存在了或是出了什么问题了,不知道大家有没有遇到过这种情况?(这个MyStream是用来存放从UDP口读进来的数据的流)。
...全文
218
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;
TypeScript类型系统与全栈项目资源包
本资源包整理了TypeScript类型系统设计检查清单、前后端接口契约模板、全栈项目目录结构、tsconfig配置基线、CI质量门禁、JavaScript迁移到TypeScript计划和常见
问题
排查指南,适合前端开发、Node.js后端开发、全栈工程化学习和团队代码质量建设参考。内容为原创模板,不包含真实生产密钥、账号、内部仓库地址或敏感配置,可按项目实际技术栈调整。
轻量级物联网开源平台,6分钟快速部署,千万级设备承载、电信级稳定性 物模型-规则引擎-数据通道-组态页面全
流
程低代码开发、前后端完全开源、支持多行业工业协议
DGIOT是国内首款轻量级开源工业物联网平台,我们致力于提供五类物联网解决方案:国企/研究院:平台代码开源,无版权产权困扰,国产无“卡脖”之忧;系统集成商:通用设备海量接入、定制设备二次开发、6分钟一键式私有化快速部署,低成本(降90%成本);工业设备制造商:海量设备上线运维,不受公有云限制,低成本,短周期自建平台,私有化部署,数据安全;开源平台开发者:一键式开发环境,集成和兼容各种最优开源工具,快速承接物联网项目;垂直领域物联网平台:快速部署私有化平台,千万级承载,运营级底座,全开放扩展
单相逆变器闭环逆变电路PWM模型仿真研究(Simulink仿真实现)
内容概要:本文围绕“单相逆变器闭环逆变电路PWM模型仿真研究”展开,基于Simulink平台构建单相逆变器的闭环控制系统仿真模型,重点研究PWM调制技术在逆变电路中的应用与实现。文中详细阐述了系统架构设计、电压电
流
双闭环控制策略的实现原理、控制器参数设计及仿真建模全过程,并通过仿真结果验证了控制方案在动态响应、稳态精度与系统稳定性方面的有效性。同时,文档还涵盖多种电力电子系统典型应用场景,如多类型短路故障仿真(中性点不接地、经小电阻接地、经消弧线圈接地等)、软开关技术、微电网能量管理、MPPT控制等,体现出较强的技术综合性和工程实践价值。; 适合人群:电气工程、自动化、电力电子与新能源等相关专业的高校本科生、研究生、科研人员,以及从事电力系统仿真、逆变器设计与新能源并网技术研发的工程技术人员。; 使用场景及目标:①掌握基于Simulink的单相逆变器闭环控制系统建模与PWM仿真方法;②深入理解双闭环控制、SPWM/SVPWM调制、系统稳定性分析等核心技术原理;③为课程设计、毕业设计、科研项目或实际工程开发提供可复用的仿真模型与技术支持; 阅读建议:建议结合文中仿真模型动手实践,重点掌握PI控制器参数整定、PWM信号生成机制与仿真结果分析方法,同时可延伸学习文档中涉及的软开关、故障仿真、微电网控制等关联技术,以拓展系统级设计能力。
群内分享图纸缺字报错,综合字体库从容应对.rar
做 CAD 的小伙伴注意啦!打开图纸文字乱码、缺字、全是问号?别慌,我整理了全套解决办法,大部分这类
问题
都能一次性修好,欢迎下载!
基于net8/10的跨平台高性能开源的工业物联网(IIoT)边缘计算网关 专注于工业现场设备数据的高效采集、边缘处理与可靠转发 项目面向真实工业场景设计,强调 稳定性、高性能、可扩展性与工程可维护性
一个开源的工业物联网(IIoT)边缘计算网关,专注于工业现场设备数据的高效采集、边缘处理与可靠转发。项目面向真实工业场景设计,强调 稳定性、高性能、可扩展性与工程可维护性,适用于工业自动化、能源、电力、制造、楼宇等多种应用环境。ThingsGateway 采用模块化与插件化架构,支持多种工业通信协议,可在边缘侧完成数据采集、预处理、协议转换与转发,有效降低系统耦合度与云端压力,是构建工业物联网系统的基础设施组件。
Delphi
5,943
社区成员
262,943
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章