CString怎样转化成char?
CString怎样转化成char? 问题点数:20、回复次数:6Top
1 楼Wugifer()回复于 2002-03-13 13:33:11 得分 0
LPCSTRTop
2 楼zzq_fortu(郑)回复于 2002-03-13 13:42:17 得分 0
CString::operator LPCTSTR
operator LPCTSTR ( ) const;
Return Value
A character pointer to the string’s data.
Remarks
This useful casting operator provides an efficient method to access the null-terminated C string contained in a CString object. No characters are copied; only a pointer is returned. Be careful with this operator. If you change a CString object after you have obtained the character pointer, you may cause a reallocation of memory that invalidates the pointer.
Example
The following example demonstrates the use of CString::operator LPCSTR.
// If the prototype of a function is known to the compiler,
// the LPCTSTR cast operator may be invoked implicitly
CString strSports(_T("Hockey is Best!"));
TCHAR sz[1024];
lstrcpy(sz, strSports);
// If the prototype isn't known, or is a va_arg prototype,
// you must invoke the cast operator explicitly. For example,
// the va_arg part of a call to sprintf() needs the cast:
sprintf(sz, "I think that %s!\n", (LPCTSTR) strSports);
// while the format parameter is known to be an LPCTSTR and
// therefore doesn't need the cast:
sprintf(sz, strSports);
// Note that some situations are ambiguous. This line will
// put the address of the strSports object to stdout:
cout << strSports;
// while this line will put the content of the string out:
cout << (LPCTSTR) strSports;
摘自MSDNTop
3 楼alfwolf(木马煞)回复于 2002-03-13 13:46:56 得分 0
(LPCTSTR)str;Top
4 楼alfwolf(木马煞)回复于 2002-03-13 13:47:54 得分 0
(LPCTSTR)str;Top
5 楼orangetouch(orange)回复于 2002-03-13 13:51:09 得分 0
或者是CString::GetBuffer()Top
6 楼yung(原来我还什么也不会)回复于 2002-03-13 13:53:18 得分 0
CString是要打开位图文件的路径名,用fopen(char*,"rb")来读位图信息,就是不能转化成char*,如果:
int n =CString.GetPathName().getLength().
char * t = new char[n];
for(int j =0;j<n;j++)
t[j] = CString.GetPathName().getat(j);
读出来得t后面多出四个空格,fopen()就打不开文件了,怎么办????
Top
7 楼ymll(扬眉)回复于 2002-03-13 13:55:36 得分 20
(LPCSTR)(char*)strTop
8 楼Lava_sdb(大波)回复于 2002-03-13 15:13:16 得分 0
1。此CString并非指vc中的CString类,而是文件的路径名
??????
1。既然以得路径名,直接用 fopen(...)打开就行了!
2。CString.GetPathName()中的GetPathName()是什么?
在vc中直接用CFile类对文件操作,更简单!
相关请看MSDNTop




