Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#字符串到非托管c++;动态链接库_C#_C++ - Fatal编程技术网

c#字符串到非托管c++;动态链接库

c#字符串到非托管c++;动态链接库,c#,c++,C#,C++,我需要写一些像这样的东西 switch (nameOfType) { case "burk": return "zzzz"; 我的C++ DLL(我需要这个来比较类型名) 其中,nameOfType是来自c#(通过DLLImport)的字符串 但是我在C++中是全新的,我必须使用什么类型的C++来操作字符串,就像C语言中的一样?< p> C++中最简单的字符串是空终止字符数组。您通常可以将托管字符串从C#封送到const char*类型 你所发布的代码将不能在C++中工作。C++

我需要写一些像这样的东西

switch (nameOfType) 
{
  case "burk":
    return "zzzz";
<>我的C++ DLL(我需要这个来比较类型名)

其中,nameOfType是来自c#(通过DLLImport)的字符串
但是我在C++中是全新的,我必须使用什么类型的C++来操作字符串,就像C语言中的一样?

< p> C++中最简单的字符串是空终止字符数组。您通常可以将托管字符串从C#封送到
const char*
类型

<>你所发布的代码将不能在C++中工作。C++中的开关语句只允许将整数类型作为操作数。获取所需内容的最简单方法是重复
如果

if (strcmp(nameOfType, "burk") == 0)
   return "zzzz";
else if (strcmp(nameOfType, "xyz") == 0)
   return "yyyy";
else ... 

如果您需要更多的字符串功能,您应该考虑使用<代码> STD::String 类。它支持正常的搜索、比较、插入和子字符串操作。

C/C++中最简单的字符串是以NULL结尾的字符数组。您通常可以将托管字符串从C#封送到
const char*
类型

<>你所发布的代码将不能在C++中工作。C++中的开关语句只允许将整数类型作为操作数。获取所需内容的最简单方法是重复
如果

if (strcmp(nameOfType, "burk") == 0)
   return "zzzz";
else if (strcmp(nameOfType, "xyz") == 0)
   return "yyyy";
else ... 

如果您需要更多的字符串功能,您应该考虑使用<代码> STD::String 类。它支持正常的查找、比较、插入和子串操作。

< P>在C++中,不能像C语言那样使用“代码> char */CODE”。您可以做的一件事是用枚举替换它

enum StringEnum { burk , foo , bar };

map<string,StringNum> m;

m["burk"] = burk;
m["foo"]  = foo;
m["bar"]  = bar;

< C++ > C++中的转换语句中,不能使用<代码> char */COD>。您可以做的一件事是用枚举替换它

enum StringEnum { burk , foo , bar };

map<string,StringNum> m;

m["burk"] = burk;
m["foo"]  = foo;
m["bar"]  = bar;
等等