如何将 IntPtr 转换为本机 c++目的
我有在 C++/Cli 中使用的 COM dll,该 COM dll 中的方法之一返回 IntPtr 我想将其转换回本机对象指针。我怎样才能做到这一点?请输入
I have COM dll that I am using in C++/Cli, one of the method in this COM dll returns IntPtr
I want to convert that back to the native object pointer. How I can do that ? please in put
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
IntPtr 是整型,您需要首先将其转换为指针类型:
或者更易读的版本:
方法调用将在运行时被优化掉。
IntPtr is an integral type, you need to first convert it to a pointer type:
Or the more readable version:
The method call will be optimized away at runtime.
IntPtr
有一个ToPointer
方法,该方法返回void*
。调用此方法,然后使用reintepret_cast
将此指针转换为正确的本机类型。IntPtr
has aToPointer
method that returns avoid*
. Call this method, then usereintepret_cast
to cast this pointer to the right native type.我想修改Hans Passant的回答,
IntPtr
直接返回 void 指针..您可以在任何类型的本机 C++ 指针中轻松转换它。这里
.ToPointer()
将返回 void 指针,现在您可以转换为自定义指针类型。I would like to modify Hans Passant's answer,
IntPtr
directly returns void pointer .. which you can cast easily in any type of native C++ Pointer.here
.ToPointer()
will return void pointer, now you can cast to your custom pointer type.