Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *** C# ***
- public struct NimT
- {
- public int intVal1;
- public int intVal2;
- }
- [Dllimport(...)]
- populateArraySruct(int length, NimT** ArrayStructs)
- public static unsafe List<NimT> PopulateLstPackNim(int ArrL)
- {
- NimT* PackUArrOut = null;
- List<NimT> RtPackLst = new List<NimT>(ArrL);
- GetPacksPtrNimMe2(ArrL, &PackUArrOut);
- NimT* CurrentPack = PackUArrOut;
- for (int i = 0; i < ArrL; i++, CurrentPack++)
- {
- RtPackLst.Add(new NimT() {intVal1 = CurrentPack->intVal1, intVal2 = CurrentPack->intVal2 });
- }
- return RtPackLst;
- }
- **NIM**
- type
- ExportNimTARRAY = seq[ExportNimT]
- ExportNimT = object
- intVal1: int32
- intVal2: int32
- proc GetPacksPtrNimMe2(parSze: int, PackArrINOUT: var ExportNimTARRAY) {.exportc,dynlib.} =
- PackArrINOUT.newSeq(parSze)
- var
- tmp1: int32
- tmp2: int32
- for i, curDataPack in PackArrINOUT.mpairs:
- tmp1 = 10 * int32 i
- tmp2 = int32 i
- curDataPack = ExportNimT (intVal1:tmp1, intVal2: tmp2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement