指针问题啊,帮帮我啊高手们?????????????
问一个问题啊,为什么我用SetWindowText(hwndedit,p),p 为字符串指针的时候程序就会出错啊?????? 问题点数:20、回复次数:7Top
1 楼llf_hust()回复于 2005-07-29 20:11:55 得分 3
BOOL SetWindowText(
HWND hWnd, // handle to window or control
LPCTSTR lpString // address of string
);
LPCTSTR为CString类型
MSDN里面查的Top
2 楼JohnTitor(贱畜)回复于 2005-07-30 00:28:15 得分 3
p指向的字符串不能放在局部栈上Top
3 楼xjp6688(大平/要做必须最好)回复于 2005-07-30 08:20:54 得分 3
是放在全局区上的Top
4 楼Wolf0403(废人:独活十年~心如刀割)回复于 2005-07-30 08:56:09 得分 3
LPCTSTR 是 CString?玩笑开大了!Top
5 楼zhouhuahai(道号"虚无")回复于 2005-07-30 11:02:35 得分 3
LPCTSTR为CString类型
MSDN里面查的
晕倒!
Top
6 楼zhouhuahai(道号"虚无")回复于 2005-07-30 11:04:36 得分 3
如何理解LPCTSTR,
L表示long指针, 这是为了兼容Windows 3.1等16位操作系统遗留下来的, 在win32中以及其他的32为操作系统中, long指针和near指针及far修饰符都是为了兼容的作用。没有实际意义。
P表示这是一个指针
C表示是一个常量
T在Win32环境中, 有一个_T宏, 这个宏用来表示你的字符是否使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏, 那么这个字符或者字符串将被作为UNICODE字符串, 否则就是标准的ANSI字符串。
STR表示这个变量是一个字符串。
所以LPCTSTR就表示一个指向常固定地址的可以根据一些宏定义改变语义的字符串。
同样, LPCSTR就只能是一个ANSI字符串, 在程序中我们大部分时间要使用带T的类型定义。
LPCTSTR == const TCHAR *Top
7 楼zhouhuahai(道号"虚无")回复于 2005-07-30 11:08:48 得分 2
问一个问题啊,为什么我用SetWindowText(hwndedit,p),p 为字符串指针的时候程序就会出错啊??????
是字符串还是字符串指针? 如果是string*类型就错了.如果是string,那么显式取它的c_str()好些Top




