【发布时间】:2011-07-26 11:39:29
【问题描述】:
我正在将一个 C++/CLI 包装 dll 加载到我的 C# 软件中,并且需要一些用于底层原生 C++ dll 的 char* 参数!
我发现我需要传递一个 StringBuilder 来保存答案而不会出现一些访问冲突?!
C#
StringBuilder sB = new StringBuilder();
WrapperClass wC = new WrapperClass();
wC.Function(sB);
C++/CLI
void WrapperClass::Function(StringBuilder ^sB)
{
nativeObject->Function(charString); // need the marshaled sB
}
C++
void NativeObject::Function(char *charString)
{
// do something and save answer to charString
}
如何使用 StringBuilder 并将其编组为 char* 并返回以保存本机函数的答案?
【问题讨论】:
-
请编辑您的问题,以便清楚询问的内容。
-
这不是一个问题,这是一个statemnet。在句尾打一个问号并不代表它是一个问题。
-
好的!问题在于代码!我现在添加了更多信息!
-
这对我来说没有意义。为什么要使用 StringBuilder 映射到本机 char[]?您应该使用 char[] 并确保它以 null 结尾。
-
看这里:books.google.at/…(char* IN 和 OUT 的默认映射是 StringBuilder)
标签: c# c++-cli char marshalling stringbuilder