【问题标题】:how to transfer contents of char[] to a String^ in C++/CLI如何在 C++/CLI 中将 char[] 的内容传输到 String^
【发布时间】:2012-10-24 10:25:58
【问题描述】:

我在 C++/CLI 程序中有命令行参数,用 char* argv[] 表示。 我想将所有连接到 String^ 类的内容传输。

代码:

String ^masterString = "Commands=>";

for(int i=0; argv[i] != nullptr; ++i)
masterString += String(argv[i]);

但是,我发现上述方法在我使用 += 运算符的最后一条语句中不起作用。

  1. 这里的错误用法是什么?这里的错误是没有运算符匹配操作数。

  2. 还有其他更好的方法将内容从 char* 存储到 String^ 中吗?

【问题讨论】:

  • String 是一个 Java 类,在 C++ 中它是 std::string。你得到什么错误?
  • i >= argc时你应该停下来
  • 这是错误的for(int i=0; argv[i] != nullptr; ++i) 应该是for(int i=0; i < argc; ++i)
  • 我已经解决了这个问题,这绝对是 C++/CLI 而不是 C++。
  • 我批准了你的编辑,m0nhawk

标签: string c++-cli string-concatenation char-pointer


【解决方案1】:

查看MSDN,主要查看this

#include <stdlib.h>
#include <string.h>
#include <msclr\marshal.h>

using namespace System;
using namespace msclr::interop;

int main() {
   const char* message = "Test String to Marshal";
   String^ result;
   result = marshal_as<String^>( message );
   return 0;
}

顺便说一句:我没有检查这个。刚google了一下。但是,我认为这会起作用,因为它发布在 MSDN 中。

【讨论】:

    猜你喜欢
    • 2022-08-12
    • 2010-12-03
    • 1970-01-01
    • 1970-01-01
    • 2018-09-01
    • 2015-07-06
    • 2014-04-26
    • 2011-06-01
    • 1970-01-01
    相关资源
    最近更新 更多