Получение U_FILE_ACCESS_ERROR, когда я вызываю UCNV_OPEN () для IBM-1252_P100-2000C++

Программы на C++. Форум разработчиков
Anonymous
Получение U_FILE_ACCESS_ERROR, когда я вызываю UCNV_OPEN () для IBM-1252_P100-2000

Сообщение Anonymous »

Я сталкиваюсь с проблемой на Linux, когда я запускаю свое приложение, которое использует ICU. Я получаю U_FILE_ACCESS_ERROR Когда я вызываю ucnv_open () для IBM-1252_P100-2000 .
Я пытаюсь запустить свое приложение извне. установить каталог. Установка Directory имеет приложение EXE и все LIBS и файлы, связанные с отделением интенсивной терапии. Поэтому, когда я запускаю приложение извне установленного DIR, я получаю ошибку преобразователя . Он не может запустить unv_open () с IBM-1252_P100-2000 в качестве имени преобразователя. Если я создаю фиктивный каталог (скажем, утверждение) и имею только 1 файл в этом DIR - icudtxxl.dat, и я пытаюсь запустить свое приложение, он работает правильно. По сути, incudtxxl.dat должен присутствовать в любом каталоге, из которого я запускаю свое приложение. В основном он проверяет только icudtxxl.dat в текущем каталоге. Настройка переменной среды ICU_DATA во время выполнения не помогла.UErrorCode Status = U_ZERO_ERROR;
ICUcnv = ucnv_open("ibm-1252_P100-2000", &Status);

if(ICUcnv == NULL)
{
string strErr("Converter not found - ");
strErr += "ibm-1252_P100-2000";
throw std::runtime_error( "error opening ICU converter" );
}
< /code>
То же самое работает нормально в Windows. Я могу запустить свое приложение из любого места в Windows.

Подробнее здесь: https://stackoverflow.com/questions/745 ... -p100-2000

Вернуться в «C++»