
你好,我来解答你的问题吧。虽然你的问题并不是很明确,但是我猜,你是想问为什么显示“读取字符串的字符时出错”吧?
其实这不是错误。这是正确的。
首先我回答你提问的:
Getfilename()不能用cstring 获取么
答案是,可以。因为你已经编译成功了。说明CString是可以获取Getfilename()的值的。如果CString不可以获取它的值,你是不可能能够运行程序的,因为那样的话连编译都会出错。
然后,显示“读取字符串的字符时出错”,是因为现在程序光标指向的并不是已经执行的语句,而是即将执行的下一个语句。
你的图中,光标指在
CString filenames =
这句话上,说明程序的下一句话是CString fileanems = ,这时CString 变量还没有被初始化,没有被赋值,所以自然无法获取其字符串的值。
还有什么问题请追问^_^
str = "Taskkill /fi \"imagename eq " + str +"exe\" /f"
WinExec(strGetBuffer(0),SW_HIDE);
先通过CString完成字符串拼接,在将CString获取字符串指针执行函数即可。
length = m_DataGetLength();
就是字符串长度。
如果m_Data是编辑框关联字符串变量,那么在调用之前最好加上语句:
UpdateDate(TRUE);//更新控件变量值
另外,length是一个UCHAR,最大只有255,并不是很安全,建议定义为int
CString str="MicrosoftWindow7";
CString Target;
Target=strLeft(strFind("")); //截取前面的字符串
//结果:Target="Microsoft",如果有多个字符,结果为第一个前面的字符串
CStringReverseFind()在CString对象中搜索与一个子串匹配的最后一个字符。此函数类似于运行时函数strrchr。
示例:// CString::ReverseFind示例:
CString s( "abcabc" );
ASSERT( sReverseFind( 'b' ) == 4 );
希望帮助到你!
现在你给出的字符串已经知道了长度,而且也知道分隔位置在哪儿,直接可以用CString::Right()函数获取后半截,如下:
CString str="abcde base64 baaaaa";
str=strRight(6);//等式右边得到str的后6个字符组成的字符串然后赋值给str
如果先前不知道分割点的确切位置的话,可以用如下函数查找:
CString::Find() //1
CString::FindOneOf() //2
函数1有如下几个原型:
int Find( TCHAR ch ) const;
int Find( LPCTSTR lpszSub ) const;
int Find( TCHAR ch, int nStart ) const;
int Find( LPCTSTR lpszSub, int nStart ) const;
函数2的原型为:
int FindOneOf( LPCTSTR lpszCharSet ) const;
找到分隔点位置后就可以截取了。
与CString::Right(int n)相对的还有CString::Left(int n),它是用来截取字符串前面n个字符的
以上就是关于vc++初学.Getfilename()不能用cstring 获取么有如下错误怎么改谢谢全部的内容,包括:vc++初学.Getfilename()不能用cstring 获取么有如下错误怎么改谢谢、mfc中CString和其他字符串的拼接、关于vc++的CString类获取字符长度问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)