System::String与std::string转化问题求解

coderhome 2010-09-08 10:38:06
有个类cSmsModule使用到smsdll.dll中的的类sms_use...

#include <iostream>
#include <sstream>
#include "string"
using std::string;
using namespace std;

#using "..\debug\smsdll.dll"
using namespace smsdll;


public ref class cSmsModule
{
private:
sms_use^ sms;

public:
cSmsModule(void);
void cmdHandle(string text);
void smsModuleLoop();
~cSmsModule(void);
};


结果在使用时报错:
void cSmsModule::smsModuleLoop()
{
cmdHandle(sms->sms_text); //sms_text是sms_use类库中的string变量,在这里使用报错了
}
报错:
不能将参数1从 System::String^转化为std::string

请问要如何解决啊。。我要传的是string变量。
...全文
313 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
coderhome 2010-09-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 akirya 的回复:]
直接用System::String^
C#的string对应的就是System::String^
[/Quote]
这个方法是可以的。
但是我想实现这样的 对字符串分隔分别 放到三个字符数组中又纠结了。
System::String arr[] = cmdtext->Split(' '); //cmdtext中有三个字串如这样"aa b ccc"
以上这个会报错。

我就是想使用上面这个功能,才想用string使用。因为如果参数是string 可以这样做把cmdtext内容分隔出来:
istringstream instr(cmdtext);
string array[3];

  • 打赏
  • 举报
回复
直接用System::String^
C#的string对应的就是System::String^
coderhome 2010-09-08
  • 打赏
  • 举报
回复
其实我就是 C++中要使用C#生成的dll(即smsdll.dll),所以查了网上说的要用到托管。
但c#的dll中有些函数接口参数是string的。而托管中使用它又传不了string进去。所以编译出错了。
边城的刀声 2010-09-08
  • 打赏
  • 举报
回复
StringBuilder?
porschev 2010-09-08
  • 打赏
  • 举报
回复
帮顶。。。。不会。。。
bloodish 2010-09-08
  • 打赏
  • 举报
回复
System::String to std::string

string nativeString =  static_cast<const char*>(Marshal::StringToHGlobalAnsi (manageString).ToPointer());
coderhome 2010-09-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 coderhome 的回复:]
找了一圈说是这样改可以
using namespace System::Text::RegularExpressions;

array<String^>^arr = cmdtext->Split("");

不过一样报错:
未声明标志符 String
[/Quote]

我晕,后来多加了一个
using namespace System;
居然编译通过了。
真相重于对错 2010-09-08
  • 打赏
  • 举报
回复
Marshal::StringToPtrAuto()
coderhome 2010-09-08
  • 打赏
  • 举报
回复
找了一圈说是这样改可以
using namespace System::Text::RegularExpressions;

array<String^>^arr = cmdtext->Split("");

不过一样报错:
未声明标志符 String

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧