在網上搜了一個ping函數,用到pchar(string),編譯時出現這個錯誤,其實以前也碰到這個問題:
delphi7版本中的Pcharh函數在delphi2010中使用時,編譯時出現錯誤 :E2010 Incompatible types: 'Char' and 'AnsiChar'
這時可以這樣使用:
PAnsiChar(AnsiString(string));
說明:
在delpin中之前,Char對應的是AnsiChar,PChar對應PAnsiChar,string(未映射成老的ShortString)對應AnsiString;而在delphi2010里,對應的是WideChar,PChar對應PWideChar,string對應UnicodeString
UnicodeString是delphi2010中出現的新字符串類型,之前沒有對應版本;delphi2010中的AnsiString也和之前版本的AnsiString類型有差別(多了兩個word,一個表示code page,另一個表示element size),但基本上可以一樣用,它與UnicodeString使同相同的管理。如果在delphi2010之前用過tntware套件的話,從沒有引用計數的WideString過渡到delphi2010的UnicodeString完全沒難度。