Unity上でC#で確保した構造体をC++へ渡したいのですが
C#で同じ構造体を作成しポインタへ返還する際に落ちてしまいます
C++構造体
C++
1typedef struct { 2 byte Data[100]; 3} STRUCT_CPP;
C#構造体
C#
1public struct STRUCT_CS 2{ 3 public byte[] Data; 4} ;
Unity上でやろうとしていること
C#
1using System.Collections; 2using System.Collections.Generic; 3using System.Runtime.InteropServices; 4using System; 5using UnityEngine; 6using UnityEngine.UI; 7 8public class StructTest : MonoBehaviour { 9 10 private IntPtr pSt; 11 12 // Use this for initialization 13 void Start () { 14 pSt = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(STRUCT_CS)); 15 16 STRUCT_CS st; 17 st.Data = new byte[100]; 18 st.Data[0] = 10; 19 Marshal.StructureToPtr(st, pSt, false); 20 21 } 22 23} 24
この状態でUnityからブレークを貼ると
Marshal.StructureToPtr(st, pSt, false);
で次の行に行けなくなってしまいます
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/28 05:16
退会済みユーザー
2020/12/28 05:25 編集
2020/12/28 05:24
2021/01/06 04:39
退会済みユーザー
2021/01/06 23:46 編集