我使用 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);