I'm using the WinPcap libraries and have set up all my native method calls. Upon building I get the CA2101: Specify marshaling for P/Invoke string arguments Code Analysis warning. My extern
function is defined like this:
[DllImport("wpcap", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
internal static extern int pcap_compile(IntPtr /* pcap_t* */ adaptHandle,
IntPtr /*bpf_program **/fp,
string /*char * */str,
int optimize,
uint netmask);
If I change the CharSet
to CharSet.Unicode
, I resolve the Code Analysis warning but my function no longer works. How can I resolve the warning and keep my code working?