当前位置:  开发笔记 > 编程语言 > 正文

我应该在dllimport中使用Ansi或Unicode字符集吗?

如何解决《我应该在dllimport中使用Ansi或Unicode字符集吗?》经验,为你挑选了1个好方法。

使用DllImport导入函数时,可以指定要使用的CharSet.我注意到在C#,C++和visual basic中,.Net运行时默认使用Ansi而不是Unicode.因此,对于具有A和W版本的任何系统调用,默认情况下将调用A版本..Net在内部使用unicode,如果我没有弄错,新版本的windows也会将所有内容转换为unicode,因此这意味着需要额外的编组开销.

我已经养成了总是在这里指定unicode的习惯这是正确的做事方式还是会导致问题?



1> CesarB..:

如果使用ANSI变体,如果(例如)存在名称无法在正在使用的ANSI代码页中表示的文件,则会出现问题.使用Unicode的唯一缺点是你的代码在旧的Win9x版本的Windows(95,98和ME)上可能无法正常工作.

有一些函数需要使用ANSI,因为它们实际上使用ASCII(例如GetProcAddress).

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有