社区
Delphi
帖子详情
DElphi 调dll 报地址错误 求大虾帮~
freechy2008
2011-08-21 05:35:56
在delphi中调用dll后 显示成功,但运行到该函数的结尾end时 报错。
...全文
289
11
打赏
收藏
DElphi 调dll 报地址错误 求大虾帮~
在delphi中调用dll后 显示成功,但运行到该函数的结尾end时 报错。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
freechy2008
2011-08-22
打赏
举报
回复
这段代码执行是可以正确执行的。但只要改动就会报错。即使你的改动完全没有意义。比如在此函数加一个参数。但我不用它执行ir:=IC_WritePurchase_D0_PS01就一定报错 执行 ir:=IC_Purchase_D0_Ex却不会。
但ir:=IC_WritePurchase_D0_PS01执行是成功的 需运行到end.的时候才报错
Access violation at address 0x000000 in module 'star.exe '. Read
rainychan2009
2011-08-22
打赏
举报
回复
LZ,请不要相信诡异一说,至少在计算机中。你这个想法只会让你正面定位、解决问题越来越远。当遇到一个问题无从下手,可以采取砍掉一步代码,精简,然后测试的办法。
freechy2008
2011-08-22
打赏
举报
回复
当然我改变的那个函数在此函数前被调用了。这个unit 全部都存放的调用该dll的函数。问题是我只是做一个完全不影响现在执行环境的改动。就如加一个参数,却不用它。而且我是改变另外一个函数哦。而且一旦出错。我改回去。让代码完全和以前一样。还出错。 只能说太诡异。。。。。。。
freechy2008
2011-08-22
打赏
举报
回复
问题在于它本身是可以的。现在这个函数所在的unit 我改变了另外一个函数一样执行到这里也出错啊。
郁闷得想死。。。。
freechy2008
2011-08-22
打赏
举报
回复
代码太多 我吧调用方式发出来
function IC_WritePurchase_D0_PS01(iport: Longint; iDataFormat:integer; pszID:PCHAR; dkWh:double; iTimes:integer; pszDateTime:PCHAR; iParamFlag:integer; dPrewarnningkWh:double; dWarnningkWh:double; dCornerkWh:double; dDayFee:double; dMaxOverDraftkWh:double; dMaxTickkWh:double; dMaxCurrent:double; dSpecialMaxCurrent:double;iMaxTripTimes:integer; pszPassword:PCHAR; iCalcuMode:integer; var isw:integer): Longint;
stdcall; external 'starcpu2.dll';
funxu
2011-08-22
打赏
举报
回复
LZ不要被报错的位置迷惑了,感觉问题应该出现在内存的使用上,使用了不该使用的内存等,这些问题在dll释放时暴露出来,所以才会在end时弹出错误,还是把主要代码贴出来看看吧
一剑飘雪
2011-08-22
打赏
举报
回复
贴主要代码
lhs203203
2011-08-22
打赏
举报
回复
请问下你调用dll的调用方式是什么你都没有写 当然在释放的时候就会报指针错误了 加上stdcall或是cdecl就可以了
rainychan2009
2011-08-22
打赏
举报
回复
[Quote=引用 3 楼 freechy2008 的回复:]
这段代码执行是可以正确执行的。但只要改动就会报错。即使你的改动完全没有意义。比如在此函数加一个参数。但我不用它执行ir:=IC_WritePurchase_D0_PS01就一定报错 执行 ir:=IC_Purchase_D0_Ex却不会。
但ir:=IC_WritePurchase_D0_PS01执行是成功的 需运行到end.的时候才报错
Access violation at ……
[/Quote]
访问0地址,肯定是尝试访问一个没有分配内存的指针
rainychan2009
2011-08-21
打赏
举报
回复
什么样的错呢?很怀疑是string类型的形参造成的。加ShareMM
freechy2008
2011-08-21
打赏
举报
回复
附该函数源码:
function gf_WritePurchase_Ex(iMode:integer;
iDataFormat:integer;
szID:string;
dkWh:double;
iTimes:integer;
szDatetime:string;
iParamFlag:integer;
dPrewarningkWh:double;
dWarningkWh:double;
dCornerkWh:double;
dMinUsekWh:double;
dMaxOverDraftkWh:double;
dMaxTickkWh:double;
dMaxLoadkW:double;
iMaxTripTimes:integer;
iPTCT:integer;
szPassword:string;
dTickLoadThreshold:double;
isw:integer;szmetermodel:string):integer;
var
ir:integer;
begin
try
if (iMode=$D0) or (iMode=$B0) then begin
if szmetermodel ='S' then
ir:=IC_Purchase_D0_Ex(giPort,iDataFormat, PChar(szID), dkWh, iTimes , PChar(szDatetime),
iParamFlag, dPrewarningkWh, dWarningkWh, dCornerkWh, dMinUsekWh,
dMaxOverDraftkWh, dMaxTickkWh, dMaxLoadkW, iMaxTripTimes, iPTCT,PChar(szPassword), iMode, dTickLoadThreshold, isw)
else
ir:=IC_WritePurchase_D0_PS01(giPort,iDataFormat, PChar(szID), dkWh, iTimes , PChar(szDatetime),
iParamFlag, dPrewarningkWh, dWarningkWh, dCornerkWh, dMinUsekWh,
dMaxOverDraftkWh, dMaxTickkWh, dMaxLoadkW, dTickLoadThreshold,iMaxTripTimes, PChar(szPassword), iMode, isw);
end else
ir:=IC_Purchase_Ex(giPort,iDataFormat, PChar(szID), dkWh, iTimes , PChar(szDatetime),
iParamFlag, dPrewarningkWh, dWarningkWh, dCornerkWh, dMinUsekWh,
dMaxOverDraftkWh, dMaxTickkWh, dMaxLoadkW, iMaxTripTimes, iPTCT,PChar(szPassword), iMode, dTickLoadThreshold, isw);
except
ir:=-1;
end;
result:=ir;
end;
[
delphi
教程]
delphi
开发教程全攻略(1)
该博客围绕
Delphi
开发展开,涵盖众多技术问题,如控件使用、网络数据通讯、SQL语句编写、数据库操作、程序编译、界面显示等,还涉及多线程、打包、邮件接收等方面,同时给出了相关开发资料的访问
地址
。
什么是API
本文旨在为编程初学者揭开API函数的神秘面纱,介绍API函数在操作系统发展历史中的作用,以及如何在现代可视化编程环境中利用API函数简化应用程序开发。通过详细解释API函数的类型和应用场合,
帮
助开发者理解API在实际编程中的价值。
两级电力市场环境下计及风险的省间交易商最优购电模型(Matlab代码实现)
内容概要:本文提出了一种针对两级电力市场环境下省间交易商的最优购电模型,重点考虑了现货市场与中长期市场的联动机制及市场风险因素,旨在
帮
助交易商在复杂多变的电力市场环境中制定科学合理的购电策略。模型以Matlab为工具实现,通过构建包含市场电价波动、负荷需
求
不确定性等风险源的优化框架,运用先进的数学规划方法
求
解最小化购电成本或风险
调
整后成本的决策方案。文中系统阐述了模型的目标函数设计、约束条件设定、风险量化机制(如VaR、CVaR)以及
求
解算法流程,并通过实际算例验证了模型在提升购电经济性、增强风险抵御能力方面的有效性与实用性。; 适合人群:适用于具备一定电力系统基础知识、运筹学理论背景及Matlab编程能力的高校学生、科研人员以及电力市场运营、能源交易等领域的专业从业者。; 使用场景及目标:①用于全国大学生数学建模竞赛A题等相关赛事中电力市场类问题的研究与
求
解;②为省级及以上电力交易机构和售电公司在跨区购电决策中提供计及风险的量化分析工具,实现成本控制与风险规避的平衡;③作为高等院校电力市场、能源经济等课程的教学案例,深化对现代电力市场机制与风险管理方法的理解。; 阅读建议:读者在学习过程中应重点关注模型对风险的建模方式与优化算法的具体实现细节,建议结合所提供的Matlab代码进行
调
试与仿真,通过改变市场参数、风险偏好和约束条件等方式开展敏感性分析,以深入掌握模型的适应性与鲁棒性。
(编程侯老师的3D scratch 代码)的 C++ 版本
(编程侯老师的3D scratch 代码)的 C++ 版本
某启慧双语学校智能化系统工程规划设计方案Word(29页).doc
智慧方案依托物联网、大数据、人工智能等新一代信息技术,面向智慧城市、智慧园区、智能制造、智慧教育、智慧工程等多个垂直领域,从业务痛点出发搭建全链路数据驱动的智能管理体系,打破传统模式下信息孤岛、资源浪费、决策滞后等核心问题,覆盖需
求
调
研、方案设计、落地实施、运维优化全流程,既能为IT从业者提供标书撰写、项目申
报
的专业参考框架,也能
帮
助政企单位快速理清数字化转型的实施路径,大幅降低方案的试错成本与沟通成本,是技术人员排查问题、业务人员梳理逻辑、管理人员评估项目的实用工具,如果你需要海量细分赛道的成熟参考案例,欢迎进入找方案知识星球,获取覆盖数十个行业的专属智慧方案库,快速提升方案产出效率与专业度。
Delphi
5,943
社区成员
262,941
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章