如果我用这样的东西调用我的 COM 方法
d.someMethod(string, doule, ref string);
我收到上面提到的错误。被调用的方法是这样的
STDMETHODIMP SomeClass::someMethod(BSTR, DOUBLE, BSTR*)
只要我不为 BSTR* 分配一些值,它就可以正常工作。
编辑:IDL 描述
interface IDistanceClass : IDispatch{
[id(1), helpstring("some helpstring")] HRESULT someMethod([in] BSTR firstarg, [in] DOUBLE secondarg, [in,out] BSTR* returnme);
};
EDIT2:只要我只传递 1 个像 *returnme = "T" 这样的字符,它就可以正常工作。但是当它需要是一个它抛出的字符串时,即使我将一个指针分配给一个字符串,我也会得到一个错误。