我有一個非常大量的應用程序轉換到德爾福2009年,並有一些外部接口返回pAnsiChars。有沒有人有一個快速簡單的方法將這些轉換回pChars? pAnsiChar有很多字符串,但我可以在其他方面找到很多。有沒有一種快速和骯髒的方式將PansiChar投射到德爾福2009年Pchar
回答
Delphi 2009添加了一個名爲RawByteString的新字符串類型。它被定義爲:
type
RawByteString = type AnsiString($ffff);
如果您需要保存的二進制數據來作爲PAnsiString,你可以用這個。您應該能夠像以前使用AnsiString一樣使用RawByteString。
但是,推薦的長期解決方案仍然是將您的程序轉換爲Unicode。
你必須小心RawByteString。就像其他字符串類型一樣,RawByteString仍然有一個與其關聯的代碼頁,並在分配Unicode字符串時使用該代碼頁。唯一的區別是RawByteString可以在運行時動態改變代碼頁,而其他字符串類型則不會。 RawByteString不能用作獨立的字符串類型。它的主要(也是唯一的推薦)用在函數參數中,它們不關心源Ansi字符數據使用什麼代碼頁。 – 2009-07-13 22:16:51
沒有辦法將一個PAnsiChar「投」到PChar。在Delphi 2009中,PChar是Unicode。Ansi數據不能簡單地轉換爲Unicode,反之亦然。您必須執行實際的數據轉換。如果您有一個PAnsiChar指向某些數據的指針,並且希望將數據放入一個Unicode字符串中,則首先將PAnsiChar數據分配給AnsiString,然後根據需要將AnsiString分配給Unicode字符串。同樣,如果您需要將Unicode字符串傳遞給PAnsiChar,則必須先將數據分配給AnsiString。有關Embarcadero's和TeamB's博客網站的文章涉及Delphi 2009遷移問題。
我正在跳過那裏有一個內置函數來做到這一點,我失蹤了。現在我有自己的函數庫來完成轉換。 – 2009-07-08 02:15:26
- 1. 德卡爾和德爾福2009年
- 2. 解決中的TDataSetProvider德爾福2010年或德爾福2009年
- 3. 德爾福2009年:是否有鍵盤快捷方式搜索結構面板?
- 4. 轉換德爾福7代碼與德爾福2009年工作
- 5. 德爾福 - 數組的字和PAnsichar
- 6. 德爾福2009年的onkeydown不捕獲作爲德爾福2007年做
- 7. 德爾福2009年壓縮gzipped文件
- 8. 德爾福2009年升級問題
- 9. 德爾福2009年編譯包
- 10. 德爾福2009年MS生成頭痛
- 11. 德爾福2009年導入D7 DPR:
- 12. 德爾福2009年啓動錯誤
- 13. 德爾福2009年投給字符串長度2
- 14. 快速和骯髒的Java wiki
- 15. 快速和骯髒的運營商=
- 16. 快速和骯髒的GridView不工作
- 17. 快速和骯髒的方式禁用特定的外鍵
- 18. 從'System.Net.WebClient.DownloadFile''解鎖'ps1文件的快速和骯髒的方式
- 19. 有沒有辦法在德爾福2009年使窗體控件私人?
- 20. 德爾福2009年和突觸 - 測試和準備Unicode支持?
- 21. 字節數組PAnsiChar在2007年德爾福
- 22. 使用項目配置德爾福2009年和6的FinalBuilder
- 23. 德爾福2009年和火鳥2.1 =完整的Unicode?
- 24. SOAP:到2010年德爾福
- 25. 德爾福2009年找不到在包中聲明的記錄
- 26. 德爾福2009年只停在一個單位的斷點
- 27. 德爾福PChar類型C++爲const char *
- 28. 2010年德爾福
- 29. 問題與印,ADO和德爾福2009年
- 30. 德爾福6與RAD Studio 2009一起
'pChr = PChar(string(AnsiString(pAnsiChr)))`你在找什麼? – Fr0sT 2015-03-30 11:32:57