如何使用单声道嵌入将字符串参数传递给 c# 方法
How to pass string parameter to c# method using mono embedded?
我想使用单声道嵌入将string
参数传递给 c# 方法。下面是 c# 方法:
public static void CallMe(string value)
{
Console.WriteLine(value);
}
这是 c++ 调用:
PVOID method = mono_class_get_method_from_name(Class, string("CallMe").c_str(), 1);
mono_runtime_invoke(method, NULL, new void*[1] { (void*)"Hello World! " }, NULL);
打印的值为空字符串或问号。我该如何解决这个问题?
您必须首先使用 mono_string_new 将字符串转换为 MonoString。
如果要传递值类型,则需要传递指针(字符串已经是指针(。
请记住mono_class_get_method_from_name C# 方法中的参数数设置param_count。
C++:
void RunMonoMethodWithParams(MonoDomain* domain, PCHAR _namespace, PCHAR _class, PCHAR _method, PCHAR param1)
{
.
.
.
//Open assembly, get image, class from name...
.
.
.
PVOID method = mono_class_get_method_from_name(_class, _method, 2);
int param0 = 0xFF;
//Each index equals 1 parameter
PVOID args[2];
args[0] = ¶m0;
args[1] = mono_string_new(domain, param1);
mono_runtime_invoke(method, NULL, args, NULL);
}
C#:
public static int CSharpMethod(int param0, string param1)
{
...
}
相关文章:
- 将字符串数组作为函数参数传递
- 为什么此字符串在传递到stoi时被视为无效参数
- 如何通过C++在Python函数中传递字符串参数
- 当数组大小在C++中未知时,如何在运行时将对字符串数组的引用作为函数参数传递?
- 如何将从第 2 个字符开始的字符串作为函数中的参数传递以进行递归,并约束数据 tiee 是函数中的字符串?
- C++ _beginthread不能将字符串作为参数传递
- 如何将 std::string 作为构造函数参数传递,并将其保存的 C 字符串存储在 void 指针中?
- Pybind11:将字符串*参数传递给构造函数
- 如何将二维数组类型字符(字符串)作为函数参数传递?
- 在 c++ 中调用将字符串作为参数传递的函数时出错
- 为什么将char*传递给字符串参数会产生汇编错误
- 无法将字符串参数传递到构造函数中?
- 将文本字符串作为常量字符 * 参数传递会导致代码分析器错误
- 如何检查谷歌模拟中作为空指针传递的字符串参数
- 如何在C++中将字符串的动态二维数组作为参数传递
- 减少将参数传递给函数所需的字符串流操作的详细程度
- 如何将字符串数组作为函数参数传递
- 将字符串参数传递给另一个字符串
- node.js 插件 - 如何将字符串参数传递给 (nan) C++
- 将字符串参数传递给函数时出现语法错误