2009-06-30 3 views
0

У меня есть устаревшая библиотека COM Delphi, которая принимает в качестве параметра строку ANSI (кодовая страница 1252).
Сгенерированная .net-оболочка принимает строку для этого параметра. Однако прохождение в обычной строке не заканчивается хорошо. Если символ «°» передается, знак вопроса занимает свое место.Обертка и кодовые страницы Com

Как я могу пойти и отладить это? Это оболочка com не распознает правильную кодировку? Как я могу передать строку ANSI (я могу преобразовать ее в байты, но API требует строку, поэтому он снова преобразуется в UTF16)

ответ

0

Одним из способов решения проблемы было бы создать промежуточный уровень на неуправляемом языке, который перенаправлять вызовы в исходную библиотеку и использовать MultiByteToWideChar для преобразования. Это довольно простое и хорошее решение, если вы не убедите обертку каким-то другим способом.

+0

Что мне интересно, почему оболочка не обертывается правильно. –

Смежные вопросы