Delphi Debug模式下可以但是Release模式下报错原因之一

作者在使用Delphi调用C编写的DLL时,在Release模式下遇到了返回错误的问题。通过排除内存管理差异的原因,最终发现关闭编译器优化选项可以解决此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天上午才遇到的一个问题,Delphi的DLL调用C编写的dll(不太确定是不是C语言),在debug模式下运行好好的,切换到release模式下竟然无法正确返回?这个DLL在我们的其他exe程序中调用一直没有问题,为什么现在会产生问题呢?这个问题困扰了我两天,一直以为是C语言处理的内存方式与delphi有差异而导致的,没想到竟然是因为它!!!

把工程设置中的 Optimization 中的勾去掉再编译, 这下Release模式下运行没有问题了。

当然这里只记录了这一种情况,大家如果遇到跟我一样问题的时候不妨试试,看能不能解决问题。

百度了一下:

可配置编译器来执行代码优化。如果不选中“Optimization”复选框,则编译器不优化代码;若选中“Optimization”复选框,则编译器就会生成速度最快的代码,而不考虑代码大小


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值