Index: Include/Classes/System/String.ab
===================================================================
--- Include/Classes/System/String.ab	(revision 49)
+++ Include/Classes/System/String.ab	(revision 119)
@@ -2,5 +2,5 @@
 	m_Length As Long
 Public
-	Chars As LPSTR
+	Chars As *Char
 
 	Sub String()
@@ -9,5 +9,5 @@
 	End Sub
 
-	Sub String(initStr As LPSTR)
+	Sub String(initStr As *Char)
 		String()
 		Assign(initStr)
@@ -24,5 +24,5 @@
 	End Sub
 */
-	Sub String(initChar As Byte, length As Long)
+	Sub String(initChar As Char, length As Long)
 		ReSize(length, initChar)
 	End Sub
@@ -40,5 +40,5 @@
 	End Function
 
-	Function Operator() As LPSTR
+	Function Operator() As *Char
 		Return Chars
 	End Function
@@ -48,17 +48,17 @@
 	End Sub
 
-	Sub Operator = (text As LPSTR)
+	Sub Operator = (text As *Char)
 		Assign(text)
 	End Sub
 
-	Function Operator[] (n As Long) As Byte
+	Function Operator[] (n As Long) As Char
 		Return Chars[n]
 	End Function
 
-	Sub Operator[]= (n As Long, c As Byte)
+	Sub Operator[]= (n As Long, c As Char)
 		Chars[n] = c
 	End Sub
 
-	Function Operator+ (lpszText As LPSTR) As String
+	Function Operator+ (lpszText As *Char) As String
 		Return Concat(lpszText, lstrlen(lpszText))
 	End Function
@@ -68,5 +68,5 @@
 	End Function
 
-	Function Operator& (lpszText As LPSTR) As String
+	Function Operator& (lpszText As *Char) As String
 		Dim tempString As String
 		tempString=This+lpszText
@@ -88,5 +88,5 @@
 	End Function
 
-	Function Operator== (lpszText As LPSTR) As Long
+	Function Operator== (lpszText As *Char) As Long
 		If lstrcmp(This, lpszText) = 0 Then
 			Return _System_TRUE
@@ -100,5 +100,5 @@
 	End Function
 
-	Function Operator<> (lpszText As LPSTR) As Long
+	Function Operator<> (lpszText As *Char) As Long
 		Return lstrcmp(This, lpszText)
 	End Function
@@ -112,5 +112,5 @@
 	End Function
 
-	Function Operator< (lpszText As LPSTR) As Long
+	Function Operator< (lpszText As *Char) As Long
 		If lstrcmp(This, lpszText) < 0 Then
 			Return _System_TRUE
@@ -128,5 +128,5 @@
 	End Function
 
-	Function Operator> (lpszText As LPSTR) As Long
+	Function Operator> (lpszText As *Char) As Long
 		If lstrcmp(This, lpszText) > 0 Then
 			Return _System_TRUE
@@ -144,5 +144,5 @@
 	End Function
 
-	Function Operator<= (lpszText As LPSTR) As Long
+	Function Operator<= (lpszText As *Char) As Long
 		If lstrcmp(This, lpszText) <= 0 Then
 			Return _System_TRUE
@@ -160,5 +160,5 @@
 	End Function
 
-	Function Operator>= (lpszText As LPSTR) As Long
+	Function Operator>= (lpszText As *Char) As Long
 		If lstrcmp(This, lpszText) => 0 Then
 			Return _System_TRUE
@@ -168,5 +168,5 @@
 	End Function
 
-	Function StrPtr() As LPSTR
+	Function StrPtr() As *Char
 		Return Chars
 	End Function
@@ -186,5 +186,5 @@
 	End Sub
 
-	Sub ReSize(allocLength As Long, c As Byte)
+	Sub ReSize(allocLength As Long, c As Char)
 		If allocLength < 0 Then
 			Exit Sub
@@ -201,5 +201,5 @@
 	End Sub
 
-	Sub Assign(lpszText As LPSTR, textLength As Long)
+	Sub Assign(lpszText As *Char, textLength As Long)
 		If lpszText = Chars Then Exit Sub
 		If AllocStringBuffer(textLength) <> 0 Then
@@ -213,5 +213,5 @@
 	End Sub
 
-	Sub Assign(lpszText As LPSTR)
+	Sub Assign(lpszText As *Char)
 		If lpszText Then
 			Assign(lpszText, lstrlen(lpszText))
@@ -223,5 +223,5 @@
 	End Sub
 
-	Sub Append(lpszText As LPSTR, textLength As Long)
+	Sub Append(lpszText As *Char, textLength As Long)
 		Dim prevLen As Long
 		prevLen = m_Length
@@ -232,5 +232,5 @@
 	End Sub
 
-	Sub Append(text As LPSTR)
+	Sub Append(text As *Char)
 		Append(text, lstrlen(text))
 	End Sub
@@ -240,5 +240,5 @@
 	End Sub
 
-	Function Concat(lpszText As LPSTR, textLength As Long) As String
+	Function Concat(lpszText As *Char, textLength As Long) As String
 		Dim tempString As String
 		With tempString
@@ -259,5 +259,5 @@
 	End Function
 
-	Function Contains(lpszText As LPSTR) As BOOL
+	Function Contains(lpszText As *Char) As BOOL
 		If IndexOf(lpszText, 0, m_Length) >= 0 Then
 			Return _System_TRUE
@@ -267,13 +267,13 @@
 	End Function
 
-	Function IndexOf(lpszText As LPSTR) As Long
+	Function IndexOf(lpszText As *Char) As Long
 		Return IndexOf(lpszText, 0, m_Length)
 	End Function
 
-	Function IndexOf(lpszText As LPSTR, startIndex As Long) As Long
+	Function IndexOf(lpszText As *Char, startIndex As Long) As Long
 		Return IndexOf(lpszText, startIndex, m_Length - startIndex)
 	End Function
 
-	Function IndexOf(lpszText As LPSTR, startIndex As Long, count As Long) As Long
+	Function IndexOf(lpszText As *Char, startIndex As Long, count As Long) As Long
 		Dim length As Long
 		length = lstrlen(lpszText)
@@ -298,13 +298,13 @@
 	End Function
 
-	Function LastIndexOf(lpszText As LPSTR) As Long
+	Function LastIndexOf(lpszText As *Char) As Long
 		Return LastIndexOf(lpszText, m_Length - 1, m_Length)
 	End Function
 
-	Function LastIndexOf(lpszText As LPSTR, startIndex As Long) As Long
-		Return LastIndexOf(lpszText As LPSTR, startIndex, startIndex + 1)
-	End Function
-
-	Function LastIndexOf(lpszText As LPSTR, startIndex As Long, count As Long) As Long
+	Function LastIndexOf(lpszText As *Char, startIndex As Long) As Long
+		Return LastIndexOf(lpszText As *Char, startIndex, startIndex + 1)
+	End Function
+
+	Function LastIndexOf(lpszText As *Char, startIndex As Long, count As Long) As Long
 		Dim length As Long
 		length = lstrlen(lpszText)
@@ -329,5 +329,5 @@
 	End Function
 
-	Function StartsWith(lpszText As LPSTR) As BOOL
+	Function StartsWith(lpszText As *Char) As BOOL
 		If IndexOf(lpszText) = 0 Then
 			Return _System_TRUE
@@ -337,5 +337,5 @@
 	End Function
 
-	Function EndsWith(lpszText As LPSTR) As BOOL
+	Function EndsWith(lpszText As *Char) As BOOL
 		If LastIndexOf(lpszText) = m_Length - lstrlen(lpszText) Then
 			Return _System_TRUE
@@ -345,5 +345,5 @@
 	End Function
 
-	Function Insert(startIndex As Long, lpszText As LPSTR) As Long
+	Function Insert(startIndex As Long, lpszText As *Char) As Long
 		Dim length As Long
 		length = lstrlen(lpszText)
@@ -351,5 +351,5 @@
 		If startIndex < 0 Or startIndex > m_Length Then Return -1
 
-		Dim newChars As LPSTR
+		Dim newChars As *Char
 		newChars = _System_malloc(length + m_Length + 1)
 		If newChars = 0 Then Return -1
@@ -391,5 +391,5 @@
 		If startIndex + count > m_Length Then Return -1
 
-		Dim newChars As LPSTR
+		Dim newChars As *Char
 		newChars = _System_malloc(m_Length - count + 1)
 		If newChars = 0 Then Return -1
@@ -413,5 +413,6 @@
 	End Function
 
-	Sub Replace(oldChar As Byte, newChar As Byte)
+
+	Sub Replace(oldChar As Char, newChar As Char)
 		Dim i As Long
 		For i = 0 To ELM(m_Length)
@@ -468,7 +469,11 @@
 	End Sub
 
+	Override Function ToString() As String
+		Return This
+	End Function
+
 Private
 	' メモリ確保に失敗すると元の文字列は失われない。（例外安全でいう強い保障）
-	Function AllocStringBuffer(textLength As Long) As LPSTR
+	Function AllocStringBuffer(textLength As Long) As *Char
 		If textLength < 0 Then
 			Return 0
