亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用Mono Project傳遞和保存C / C++指針,并將它們返回

如何使用Mono Project傳遞和保存C / C++指針,并將它們返回

C#
慕哥9229398 2022-08-20 16:45:42
我遇到了一個嚴重的問題,弄清楚如何有效地傳遞和存儲指向C#的C指針,然后在我需要它們時使用Mono將它們返回。我正在C++之上使用 C# 構建腳本層。例如(偽代碼):C++:GameObject* owner = new GameObject();void* args[1] = {owner};return_object = mono_runtime_invoke("InitReference", mono_object, args, &exception);C#:(C# 游戲對象類實例)public IntPtr InitReference(IntPtr game_object_ptr){    return game_object_ptr;}我想要實現的是C++對象實例與實際 C# 表示形式之間的關系。關于這方面的信息很少,我有點迷茫。
查看完整描述

2 回答

?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

經過一些嘗試,我解決了我的問題:首先,我將指針地址存儲到char緩沖區中,然后將其作為int[]的數組傳遞給mono。這使我的指針地址在 C# 環境中保持活動狀態,并且我可以隨時檢索它。


查看完整回答
反對 回復 2022-08-20
?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

我的建議:

新建一個具有StructLayout屬性的.Net結構,例如:


[StructLayout( LayoutKind.Explicit )]

public struct GameObject

{

  [FieldOffset(0)]

  public int Id;

  ......

}

則 .net 指針可以指向結構實例。


查看完整回答
反對 回復 2022-08-20
  • 2 回答
  • 0 關注
  • 115 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號