DELPHI無類型參數數組
有很多Delphi新手對過程(函數)的無類型參數感到困惑,不知該傳遞什麼類型。其實,Delph中有很多這類無類型參數,如經常使用的Move過程,只要把它當着一個Byte類型的數組看待就好了。ide
當使用string類型做實參傳遞給無類型形參時,要把s[1]做爲參數傳遞(string類型下標是從1開始的),或者用指針轉換,如PChar(s)^。函數
若是是Delphi2009及以上版本,string類型做實參傳遞給無類型形參時,要注意不能簡單的將Length(s)傳遞給SourceSize,而應該是Length(s) * Sizeof(char),由於Length(s)是字符串的長度,而不是實際緩衝區的長度,Delphi2009及以上版本中默認的string是WideString,編碼
char也等於WideChar,每一個char佔2字節。spa
固然用string類型傳遞給無類型參數計算的是Unicode字符串的Base64編碼,只有用AnsiString類型傳遞給無類型參數,或者使用StrToBase64過程(會自動轉換string爲AnsiString),纔多是你須要的Base64編碼.指針