C++/CLI 互操作:COM 函数始终返回 null IntPtr
我有使用 COM 库的 C++/CLI 模块。 COM 库函数返回指向该对象的指针。 C++/CLI 中 COM 函数调用的签名如下所示
IntPtr p = myCOMObject->GetSettings();
在 COM 接口中,同一函数具有以下签名
virtual HRESULT STDMETHODCALLTYPE GetSettings(
/* [retval][out] */ void *CSettings) = 0;
参数对象 *CSettings 是在 GetSettings 函数中创建的其他类的本机 C++ 对象。
在 C++/CLI 中调用此函数时。我总是将 IntPtr 获取为“0”并且没有为其设置任何值。我检查了纯 C++ 代码,得到了正确的对象。这可能是什么原因。我做错了什么请提出建议。
I have C++/CLI module which uses COM library. COM library function returns pointer to the object. Signature of the COM function call in C++/CLI is like this
IntPtr p = myCOMObject->GetSettings();
In COM interface same function has the following singnature
virtual HRESULT STDMETHODCALLTYPE GetSettings(
/* [retval][out] */ void *CSettings) = 0;
argument object *CSettings is native C++ object of some other class created in side GetSettings function.
When call this function in C++/CLI. I always Get IntPtr as '0' and no value set to it. I checked with pure C++ code, I get proper object. what could be the reason for this.Am i doing somthing wrong please suggest.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论