Я кодировал свое приложение (.NET) в английской языковой системе.Я импортировал (DllImport) C ++ dll в мое приложение и вызывает метод со строкой в качестве одного из параметров.Эта настройка хорошо работает в языковой системе системы по умолчанию (английский-США).
Проблема возникает, когда я изменяю языковой стандарт системы на «Японский».Строка, полученная в коде C ++, несколько отличается, и моя функция выдает ошибку из-за этого.
C #:
[DllImport(".\\MainDll.dll", EntryPoint = "DoWork")]
public static extern int DoWork(string dData,
string sData,
byte[] eData);
Вызов в конце C #:
int BufferSize = DoWork(dString, sString, retData);
C ++:
__declspec(dllexport) int DoWork( LPCTSTR chData1_i, LPCTSTR chData2_i, unsigned char chDecryptedData_o[] )
{.,.
}
Я могу обнаружить, что полученные данные (chData1_i) отличаются, когда применяется другой параметр локали системы.Я пробовал char *, а также wchar_t * вместо LPCTSTR.
Любая подсказка / помощь приветствуется.
Спасибо ...