Com包装器和代码页

时间:2009-06-30 14:44:05

标签: c# .net com encoding ansi

我有一个传统的Delphi COM库,它接受ANSI字符串(代码页1252)作为参数 生成的.net包装器接受此参数的字符串。然而,传入常规字符串并不能很好地结束。如果以'°'字符传递,则问号会占据它的位置。

我该怎么去调试呢? com包装器不能识别正确的编码吗?我如何传入ANSI字符串(我可以将其转换为字节,但API需要一个字符串,因此它再次转换为UTF16)

1 个答案:

答案 0 :(得分:0)

一种解决方法是使用非托管语言编写中间层,将中调调用重定向到原始库并使用MultiByteToWideChar进行转换。如果你不以其他方式说服包装器,这很容易并且是一个很好的解决方案。