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

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

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

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

百度了一下:

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

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