mfc Cstring a=“c:\xpstation\测试.cs”;char path[50];请问如何将a转换path[]??需要vs2010能正确
mfcCstringa=“c:\xpstation\测试.cs”;charpath[50];请问如何将a转换path[]??需要vs2010能正确出结果的,网上很多都不对...
mfc Cstring a=“c:\xpstation\测试.cs”;char path[50];请问如何将a转换path[]??需要vs2010能正确出结果的,网上很多都不对。
展开
5个回答
展开全部
1.你这个CString a="c:\xpstation\测试.cs"也写的不对.应该写成这样:CString a="c:\\xpstation\\测试.cs"
2.做上面的转换 就看你是用的unicode环境还是多字节环境呢?
3.如果是多字节环境,直接使用strcpy(path,a.GetBuffer(MAX_PATH)); a.ReleaseBuffer();就OK了
4.如果是在unicode环境下:可以使用WideCharToMultiByte 这个函数转换,具体例子看看百度百科里面这个函数的用法。
另外:_tcscpy()//这个函数在多字节环境 和unicode环境下都适用。在不明确编译环境的情况下,不要直接写char path[50]; 可以写TCHAR path[50];
2.做上面的转换 就看你是用的unicode环境还是多字节环境呢?
3.如果是多字节环境,直接使用strcpy(path,a.GetBuffer(MAX_PATH)); a.ReleaseBuffer();就OK了
4.如果是在unicode环境下:可以使用WideCharToMultiByte 这个函数转换,具体例子看看百度百科里面这个函数的用法。
另外:_tcscpy()//这个函数在多字节环境 和unicode环境下都适用。在不明确编译环境的情况下,不要直接写char path[50]; 可以写TCHAR path[50];
展开全部
CString::GetBuffer()函数
返回是 char*
用完以后,应该要 CString::ReleaseBuffer() 一下.
在有, 如果手动写入路径在程序里, "\" 应该写为 "\\" 吧
因为 通常 "\" 被认为是转义符
返回是 char*
用完以后,应该要 CString::ReleaseBuffer() 一下.
在有, 如果手动写入路径在程序里, "\" 应该写为 "\\" 吧
因为 通常 "\" 被认为是转义符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你要确保这句正确(注意转义字符反斜杠):CString a = "c:\\xpstation\\测试.cs";(这句你的环境不一定能通过编译,最好使用后句)最好显式使用CStringA a = "c:\\xpstation\\测试.cs";
然后strcpy(path,a.GetBuffer());
a.ReleaseBuffer();
然后strcpy(path,a.GetBuffer());
a.ReleaseBuffer();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
lstrcpy(path,a);
CString可以隐式转换成const char*,所以直接用字符串函数复制就行了.
CString可以隐式转换成const char*,所以直接用字符串函数复制就行了.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该可以直接等的啊,实在不行就单独拷贝字符呗
int i = 0;while(a[i] != 0){path[i] = a[i];++i}
int i = 0;while(a[i] != 0){path[i] = a[i];++i}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询