KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I've the following structure in C#: [StructLayoutAttribute(LayoutKind.Sequential)] public struct RECORD { public uint m1; public uint m2; public uint m3; } I need too pass an array (fixed length) of these structs over to native Code, which writes some data to these structures. The array is allocated in C# and passed over to the C dll. I declared the imported function as: [DllImport("marshall.dll", CallingConvention = CallingConvention.Cdecl)] private static extern void doIt(RECORD[] dataRecord); but I don't get any data back. I already tried the PInvoke Interop Assistant. Should I use IntPtr here? Any ideas? Edit: Here is the C# code to call the native function: RECORD[] rec = new RECORD[256]; doIt(rec); // values of rec are all zero here Here is the C function: int doIt(RECORD* rec) { // deref pointer and write some data }
Tags (comma-separated)
Save Edits
Cancel