【问题标题】:Calling COM wrapped c# dll from unmanaged c++: how to pass a 'string' and retrieve an updated value从非托管 c++ 调用 COM 包装的 c# dll:如何传递“字符串”并检索更新的值
【发布时间】:2010-09-23 15:44:42
【问题描述】:
我使用 COM 互操作从我的 VC6 MFC DLL 调用 c# dll 中的函数,这工作正常。
我想调用一个函数来检索字符串值。
如何在非托管 C++ 中声明“字符串”?
'string' 应该如何出现在 c# 代码中?
目前 dll 中的 c# 函数采用 ref 字符串参数,并且我的 c# 测试应用程序工作正常,但是我从非托管 c++ 调用中传递了什么?
希望这是有道理的。
欢迎任何帮助,谢谢。
【问题讨论】:
标签:
interop
unmanaged
managed
visual-c++-6
【解决方案1】:
问题解决了。
我在 VC6 代码中创建了一个 BSTR 变量:
BSTR 键 = SysAllocString(NULL);
我调用我的 C# 程序集:
演示者->GetObject(&key);
我的 C# 函数是:
void GetObject(引用字符串键);
:)