怎么将一个class通过structureToPtr传给IntPtr

莫陌莫墨 2023-04-14 10:33:36

Marshal.StructureToPtr(_session, _copiedSess, true);.

会一直报错,说不是结构体,或者说是null

MarshalDirectiveException: Type Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid which is passed to unmanaged code must have a StructLayout attribute.
(wrapper other) NNOnnx.NNSession.StructureToPtr(object,intptr,bool)

...全文
86 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-04-14
精选
  • 打赏
  • 举报
回复
您的问题已经帮您同步至问答, 链接: https://ask.csdn.net/questions/7924729, 请您保持关注, 如果回答有帮助解决此问题, 麻烦您动动小手给相关的回答点赞, Ada会在评论区为您更新结题状态
wanghui0380 2023-04-14
  • 打赏
  • 举报
回复

class 是托管的,地址随时在变。所以你非要如此只能先申明不让gc管理,然后用ValueTuple包一下

当然我不保证可以行,所以如果不行请按照对方的说明,自己生成一个同样的结构体,然后把数据复制到这个结构里

111,090

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧