萌宝部落 發表於 2019-11-5 10:00:00

DELPHI无类型参数

<p>DELPHI无类型参数</p>
<p><span class="hljs-comment">有不少Delphi新手对过程(函数)的无类型参数感到困惑,不知该传递什么类型。其实,Delph中有不少这类无类型参数,如常用的Move过程,只要把它当着一个Byte类型的数组看待就行了。</span></p>
<p><span class="hljs-comment">当使用string类型作实参传递给无类型形参时,要把s作为参数传递(string类型下标是从1开始的),或者用指针转换,如PChar(s)^。</span></p>
<p><span class="hljs-comment">如果是Delphi2009及以上版本,string类型作实参传递给无类型形参时,要注意不能简单的将Length(s)传递给SourceSize,而应该是Length(s) * Sizeof(char),因为Length(s)是字符串的长度,而不是实际缓冲区的长度,Delphi2009及以上版本中默认的string是WideString,</span></p>
<p><span class="hljs-comment">char也等于WideChar,每个char占2字节。</span></p>
<p><span class="hljs-comment">当然用string类型传递给无类型参数计算的是Unicode字符串的Base64编码,只有用AnsiString类型传递给无类型参数,或者使用StrToBase64过程(会自动转换string为AnsiString),才可能是你需要的Base64编码.</span></p>

</div>
<div id="MySignature" role="contentinfo">
    <p>本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/11796675.html</p><br><br>
来源:https://www.cnblogs.com/hnxxcxg/p/11796675.html
頁: [1]
查看完整版本: DELPHI无类型参数