最近由于项目需要上传文件到阿里OSS,参考OSS API用DELPHI XE写了一个DLL给delphi7的工程调用。最初传入中文,打印日志老是乱码。最终原因还是数据类型长度的问题。现将相关代码贴出来供大家参考:
delphi xe 10:
function UploadFileToOSSForMulUpload(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;
经实践该代码没有问题!