У меня есть неуправляемая DLL-библиотека c ++, которую мне нужно вызывать из приложения для Windows Mobile C # .
У меня есть оболочка C #, и она отлично работает на рабочем столе.Я могу вызывать функции DLL из настольной программы на C # и без проблем передавать строки.
Однако, когда я компилирую lib и оболочку для мобильной платформы, я получаю сообщение об ошибке в строках DllImport, в котором говорится, чтоCharSet.ANSI не распознается.Единственные опции, которые мне разрешено писать, это CharSet.Auto и CharSet.Unicode.
Проблема в том, что независимо от этого параметра строки, получаемые в функциях c ++, являются строками широких символов, а необычные char * строки - это то, что они ожидают.
Мы можем использовать wcstombs () для перевода всех строк в начале каждой функции c ++, но я бы не стал изменять библиотеку до такой степени ...
Есть ли способ исправить сортировку между C # и C, которая работает с .NET Compact Framework?