Index: Lib/ctypes/__init__.py =================================================================== --- Lib/ctypes/__init__.py (revision 54888) +++ Lib/ctypes/__init__.py (working copy) @@ -226,6 +226,14 @@ class c_char_p(_SimpleCData): _type_ = "z" + if _os.name == "nt": + def __repr__(self): + if not windll.kernel32.IsBadStringPtrA(self, -1): + return "%s(%r)" % (self.__class__.__name__, self.value) + return "%s(0x%X)" % (self.__class__.__name__, cast(self, c_void_p).value or 0) + else: + def __repr__(self): + return "%s(0x%X)" % (self.__class__.__name__, cast(self, c_void_p).value or 0) _check_size(c_char_p, "P") class c_void_p(_SimpleCData):