繁体   English   中英

将参数从托管C#传递到托管C ++

[英]Passing arguments from managed C# to Managed C++

在C ++和C#之间传递字符串的首选方法是什么? 我有一个C ++类,其中函数之一采用const char var1 and const char var2[]作为参数。

当我在C#中调用此类函数时,函数接受的参数类型为sbyte *。 仅使用ac#-string似乎不起作用,因为C#中的函数需要sbyte *和sbyte **

C ++类:

public ref class MyClass
{
public:
    void Sample(const char * var1,const char* Var2[]);
}

C#调用...

class Program
    {
        static void Main(string[] args)
        {
               MyClass oClass = new MyClass();
               string var1 = "Variable1";
               string[] var2 = {"1","2"};
               oClass.Sample(var1,var2);
        }
}

错误:错误1参数1:无法从'字符串'转换为'sbyte *'错误2参数2:无法从'string []'转换为'sbyte **'

所以我需要帮助来了解如何将字符串参数从托管C#传递到托管C ++?

char * []与C#字符串不同。 在托管C ++中,您需要一个String ^,像这样

public ref class MyClass
{
public:
    void Sample(String^ var1, array<String^>^ var2);
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM