返回信息流我使用的是VS2008编译器
用到了一个控件:TextBox。我需要从这个TextBox返回一个字符串来赋值。
问题是,TextBox->Text返回的是一个托管的String^型变量,不是C++里面的string。
请教版上达人,如何解决这个问题
或者退而求其次,我能在一个普通的类里面定义String^型的变量吗??
这是一条镜像帖。来源:北邮人论坛 / cpp / #26172同步于 2009/7/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
弱问一个关于VC++.NET的问题
ShallWeYoung
2009/7/12镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
c#又不是c++
String 和string在这里用法没太大区别
【 在 ShallWeYoung (|*路过团*|独行剑客||我电死你) 的大作中提到: 】
: 我使用的是VS2008编译器
: 用到了一个控件:TextBox。我需要从这个TextBox返回一个字符串来赋值。
: 问题是,TextBox->Text返回的是一个托管的String^型变量,不是C++里面的string。
: ...................
我的类里面写的是string
而控件返回的是String
这两者有矛盾啊,而且我自己的类里面还有各种string的操作,不知道String是否支持
我也没有用C#写程序,窗口代码基本都是自动生成的那种,主体C++是自己已经写好了的
【 在 purevirtual 的大作中提到: 】
: c#又不是c++
: String 和string在这里用法没太大区别
给你贴段我前些天写的代码,仅供参考
void ConvertCLIStrToCharPtr(System::String^ systStr)
{
pin_ptr<const wchar_t> wch = PtrToStringChars(systStr);
size_t convertedChars = 0;
size_t sizeInBytes = ((systStr->Length + 1) * 2);
errno_t err = 0;
fileName_char = (char *)malloc(sizeInBytes);
setlocale(LC_ALL,"");
err = wcstombs_s(&convertedChars,
fileName_char, sizeInBytes,
wch, sizeInBytes);
setlocale(LC_ALL,"C");
if (err != 0)
{
throw exception("file name is illegal!");
}
}