与dllimport多个参数的不同charset是否可以为单个参数声明不同的charset选项?继承人的意思是:[dllimport("my.dll",charset=charset.Ansi)]voidmyfunc(stringCharPtrInCPP,StringBuilderWCharPtrInCPP);问题是c++函数采用char*作为文件名,对于接收到的数据采用wchar*...在c++中:voidmyfuncImpl(char*filename,WCHAR*buffer,intlen);//另一个方法myfunc包装了this如前所述,您应该能够为每个参数指定MarshalAs。另一种方法是指定默认字符集类型,然后指定奇数输出的编组。例如[DllImport("my.dll",CharSet=CharSet.Unicode)]voidmyfunc([MarshalAs(UnmanagedType.LPStr)]Stringfilename,StringBuilderbuffer,intlen);您应该为每个参数指定[MarshalAs]。请尝试以下方法:以上是C#学习教程:dllimport的多个参数的不同字符集分享的全部内容。如果对大家有用,需要详细了解C#学习教程,希望大家多多关注——[DllImport("my.dll")]voidmyfunc([MarshalAs(UnmanagedType.LPStr)]stringCharPtrInCPP,[MarshalAs(UnmanagedType.LPWStr)]StringBuilderWCharPtrInCPP,intlen);联系右侧管理员删除。如需转载请注明出处:
