您现在的位置: 我的资源 >> 日语频道 >> 菜鸟日语 >> 文章正文

今天是:
资料分类
文章阅读
请问System::String 如何转换成 LPCWSTR
文章来源:转载 点击数: 更新时间:2009-1-9 1:10:17 

有一个转换为宽字符的函数帮顶帮顶不懂,up看这里
http://social.msdn.microsoft.com/forums/en-US/Vsexpressvc/thread/0f749fd8-8a43-4580-b54b-fbf964d68375/
代码如下:

std::wstring s2ws(const std::string& s)
{
int len;
int slength = (int)s.length() + 1;
len = MultiByteToWideChar(CP_ACP, 0, s.c_str(), slength, 0, 0);
wchar_t* buf = new wchar_t[len];
MultiByteToWideChar(CP_ACP, 0, s.c_str(), slength, buf, len);
std::wstring r(buf);
delete[] buf;
return r;
}

我也遇到同样的问题了~曾经看到有人这么实现(传说这个函数MS曾实现过,后来不知怎么没了)

C/C++ code
template<typename T> interior_ptr<T> marshal_as (String^ s){ interior_ptr<const System::Char> txt=PtrToStringChars (s); return interior_ptr<T>(txt);}

使用
C/C++ code
marshal_as<CString>(e->ToString())


以下是一般的方法:
C/C++ code
if ( value->GetType() == String::typeid ) { IntPtr pint = Marshal::StringToHGlobalAnsi( (String^)value ); CString str( (Char*)pint.ToPointer() ); Marshal::FreeHGlobal(pint);}



作者:admin 文章录入:admin    责任编辑:admin 
相关文章
Socket如何获得接入客户端的真正IP和端口?
难!!一个用户控件被一个aspx页面加载....
关于建表的奇怪的问题
listbox索引超出范围。必须为非负值并小于集合大小。参数名: ind…
哪位大虾帮写一下这个C#控制台程序?
请问这种功能是怎么实现的呀? (不是知道是否属于AJAX)
简单问题! 关于取消转义"\"
求服务器空间合租
小弟初学,问个一般问题,new StudentDbmlDataContext().Student…
怎么判断数据源DataSet是什么状态呢!急

文章评论:为您所发的言论的后果负责,故请各位遵纪守法并注意语言文明。
栏目推荐

广告也精彩
栏目热门

本站LOGO