非托管函数的VB签名应该是什么 void PopulateBSTR(BSTR outstring)?
PopulateBSTR函数执行SysAllocString并填充字符串。注意,unmanagaed签名的参数是BSTR而不是BSTR *。当C ++签名以BSTR *作为参数时,我可以使用IntPtr签名封送BSTR字符串。
(非托管代码是外部dll,我无法修改但我需要使用。)
答案 0 :(得分:0)
查看PInvoke.net,您似乎需要使用MarshallAs Attribute表示应将其视为BSTR
。
答案 1 :(得分:0)
需要在CharSet = CharSet.Unicode
的属性列表中指定dllimport
。将其捕获为StringBuilder
而不是字符串类。