c++ - 在 .net 和 c++ 之间传输字典参数
问题描述
我使用 clrhost 调用一个托管 dll,该 dll 是在 vb.net 中编写的,主要功能是返回一个 Dictionary(Of String, Tuple(Of String, String, String, String))。因为编译了.net dll,所以无法更改函数的返回值
现在主机已成功调用 dll,并返回一个有效值,我怎样才能从结果中获取正确的值。
variant_t vtRetValue;
hr = spType->InvokeMember_3(bstrStaticMethodName, static_cast<BindingFlags>(BindingFlags_InvokeMethod | BindingFlags_Static | BindingFlags_Public), NULL, vtEmpty, pArguments, &vtRetValue);
if (FAILED(hr))
{
wprintf(L"Failed to invoke GetStringLength w/hr 0x%08lx\n", hr);
}
// std::map<const char*, std::tuple<const char*, const char*, const char*>> res= static_cast<std::map<const char*, std::tuple<const char*, const char*, const char*>>>(vtRetValue.vt);
解决方案
推荐阅读
- json - 如何将 Swift 中的 HTTP POST 请求发送到 JSON?
- c# - 给定大小为 2048 的 RSA 公钥,如何仅使用内置的 .net 核心函数获取其模数和指数?
- ag-grid - Ag-grid 中的模态
- python-3.x - 无法使用属性名称作为键访问字典的成员
- python-3.x - 我们可以在 onevsrest 分类器中用作估计器的可用估计器有哪些?
- c# - Angular 脚本未绑定 json 响应
- pdf - 使用 UIPath 从 PDF 中刮取字段值数据
- jquery - jQuery 插件 - 在方法调用的初始化期间使用选项
- reactjs - 使用地图反应jsx渲染
- jquery - 如何从动态元素发布表单