C# dll import function correctly

Posted by poco on Stack Overflow See other posts from Stack Overflow or by poco
Published on 2011-01-05T17:47:02Z Indexed on 2011/01/05 17:53 UTC
Read the original article Hit count: 192

Filed under:
|
|

I am trying to import a function from a c dll into C#. The c function looks like this

unsigned short write_buffer( unsigned short device_number, unsigned short word_count, unsigned long buffer_link, unsigned short* buffer)

my attempt at a C# import looks like this

[DllImport("sslib32.dll", CharSet = CharSet.Ansi, SetLastError = true)]
private static extern ushort write_buffer(ushort deviceNumber, ushort wordCount, UInt32 bufferLink, IntPtr buffer)

In C# i have a Dictionary of messages that i would like to pass to this function. The Dictionary looks like this:

Dictionary<string, List<ushort>> msgs

I am a bit confused how to make a make a proper call to pass msgs as the buffer. deviceNumber is 2, wordCount is 32, and buffLink is 0. So i know the call should look something like this

write_buffer(2,32,0, msgs[key]);

Obviously i am getting an invalid argument for the IntPtr. What is the proper way to make this call?

© Stack Overflow or respective owner

Related posts about c#

Related posts about dll