我有一个来自本机代码的示例函数
HRESULT getSampleFunctionValue(_Out_ LPWSTR * argument)
此函数输出参数中的值。我需要从托管代码中调用它
[DllImport("MyDLL.dll", EntryPoint = "getSampleFunctionValue", CharSet = CharSet.Unicode)]
static extern uint getSampleFunctionValue([MarshalAsAttribute(UnmanagedType.LPWStr)] StringBuilder argument);
这将返回垃圾值。AFAIK 原始 C 函数不使用 CoTaskMemAlloc 创建字符串。正确的叫法是什么?
任何帮助将不胜感激。