我正在使用 WinPcap 库并设置了我所有的本机方法调用。在构建时,我得到CA2101: Specify marshaling for P/Invoke string arguments Code Analysis 警告。我的extern
函数定义如下:
[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);
如果我将 更改CharSet
为CharSet.Unicode
,我会解决代码分析警告,但我的功能不再起作用。如何解决警告并保持我的代码正常工作?