NX的二次開發,麻煩大佬幫忙看看怎么修改吧。最近整著東西急得頭大。
Args[] grip_arg_list = new Args[1];
Tag[] obj = new Tag[2];
grip_arg_list[0].type = UFConstants.UF_TYPE_TAG_T_ARRAY;
grip_arg_list[0].length = 2;
GCHandle IndicesHandle = GCHandle.Alloc(obj, GCHandleType.Pinned);//為指定物件分配指定型別的句柄
IntPtr s = IndicesHandle.AddrOfPinnedObject();
grip_arg_list[0].address = s;
IndicesHandle.Free();
除錯出現報錯:

124行是這個:
GCHandle IndicesHandle = GCHandle.Alloc(obj, GCHandleType.Pinned);
這怎么修改呢?
uj5u.com熱心網友回復:
應該不需要用Alloc,試試直接創建物件,轉換為指標呼叫試試。uj5u.com熱心網友回復:
您是說直接強制轉換嗎?grip_arg_list[2].address = (IntPtr)obj;這樣的嗎?Tag[]無法轉換成IntPtr
uj5u.com熱心網友回復:
還有個問題想請教一下您,就是我需要怎么將轉換成IntPtr之后經過向相應的計算后又轉換回Tag[],或者說讀取IntPtr指向的內容?
uj5u.com熱心網友回復:
Marshal.StructureToPtr這個也只是轉換單個物件,要不你試試
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/271778.html
標籤:C#
