C#字符串传递给C++ CLI

5

在Stack Overflow上没有找到我需要的答案。我有一个C#应用程序,需要将值传递给C++ CLI应用程序(托管代码)。 (我只需要弄清楚字符串传递)

C#代码如下:

double xCoordinate = 4820.85;
double yCoordinate = 9792.93;
string stringName = "My string stuff";
abc.Highlight(xCoordinate, yCoordinate, stringName);

在C++ / CLI中,我希望接收字符串(double似乎完全可以)。
我了解到以下内容:
C++ --> std::wstring
or in C++  -->  extern "C" __declspec void GetString( char* buffer, int* bufferSize );
C# --> void GetString( StringBuilder buffer, ref int bufferSize );

也许。
System::String^
const char *

我想从C#发送字符串到C++ / CLI。虽然这似乎很简单,但我没有接受过C++培训,而且找到Interop / marshalling的示例似乎并不那么容易。


我已经重新标记了这个,因为它似乎不适用于c++managed-c++ - JBentley
1个回答

5
如果您正在使用C++/CLI,可以直接使用String
void Highlight(double xCoordinate, double yCoordinate, String^ name)
{
    //...

那么在C++中,我会这样写:void Highlight(double xCoordinate, double yCoordinate, String^ name),然后在C#中直接保留它就可以了吗?谢谢。 - Tom Stickel
为什么String模糊不清?C++ CLI中的大写String属于哪个命名空间?(我记得查过但没有找到答案) - Tom Stickel
1
哦,使用命名空间 System; (System::String^) - Tom Stickel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接