当您使用 DllImport 导入函数时,您可以指定要使用的 CharSet。我注意到在 C#、C++ 和 Visual Basic 中,.Net 运行时默认使用 Ansi 而不是 Unicode。因此,对于任何具有 A 和 W 版本的系统调用,默认情况下都会调用 A 版本。.Net 在内部使用 unicode,如果我没记错的话,新版本的 windows 也会将所有内容都转换为 unicode,因此这意味着大量额外的编组开销。
我已经养成了总是在这里指定 unicode 的习惯,这是正确的做事方式还是会导致问题?