最近,由于项目需要上传文件到阿里OSS,我们参考OSS API在DELPHI XE上编写了一个DLL到delphi7的工程呼叫。 首先进入中文,打印日志总是乱码。 最终的原因还是数据类型的长度问题。 事先贴上相关代码,仅供参考。
delphi xe 10:
functionuploadfiletoossformulupload (paccesskeyid : pansichar; pAccessKeySecret :PAnsiChar; pBucketID :PAnsiChar;
pFileName :PAnsiChar; pExamName :PAnsiChar; pRootPath :PAnsiChar; pPartFileSize :PAnsiChar;
pAnswerURL :PAnsiChar;
pmsg : pansichar (: integer; stdcall;
此函数中的字符串类型使用AnsiString,不要使用string。
delphi 7:
tuploadfiletooss=function (paccesskeyid : pchar; pAccessKeySecret :PChar; pBucketID :PChar;
pFileName :PChar; pExamName :PChar; pRootPath :PChar; pPartFileSize :PChar; pAnswerURL :PChar;
pmsg:pchar(:integer; stdcall;
实践这个代码也没有问题!