我的Dll是用VC写的,有个浮点型的参数,在Delphi里是Single类型,在VC里是float,(没用MFC)在debug版的Dll里,完全正常,但在Release版的Dll里却有问题:
如果有小数,那正常,如果是整数,值会小100,比如:我delphi里的数是2019,那到了C的DLL里变成了1919了,小于100的又不会变的。
代码太长,加上又是公司的东西,不好帖。
如果有小数,那正常,如果是整数,值会小100,比如:我delphi里的数是2019,那到了C的DLL里变成了1919了,小于100的又不会变的。
代码太长,加上又是公司的东西,不好帖。
2.C中int/int为 int
function T(f: single): single; cdecl;
external 'TestD.dll' name 'Test';{$R *.dfm}procedure TfrmTest.Button1Click(Sender: TObject);
begin
Edit2.Text := FloatToStr(T(StrToFloat(Edit1.Text)));
end;DLL:
#include "StdAfx.h"
#define DllImport extern "C" __declspec(dllimport)
#define DllExport extern "C" __declspec(dllexport)DllExport float Test(float f);
float Test(float f)
{
return f;
}不会出错,一定是运算出错了。
更加迷惑◎◎◎◎◎
结帖:
ttzzj(标识符) http://expert.csdn.net/Expert/topic/2659/2659899.xml?temp=.7382929
把分也领了