Мне никогда не удавалось заставить это работать, выполняя итерацию вперед через список errorEvent
в моем автоматизированном тестовом коде, но он РАБОТАЕТ, когда итерация назад через список errorEvent
.
Телефонный код:
for (int i = eventViewer.GetErrorEventsCount() - 1; i >= 0; i--)
{
bResult = eventViewer.SelectMainEventViaErrorEvent(i);
if (!bResult)
{
break;
}
System.Threading.Thread.Sleep(2000);
}
Контрольный код:
public bool SelectMainEventViaErrorEvent(int eventIdx)
{
bool bSuccess = false;
DisableToolTips(true);
errorEvents.Select(eventIdx);
errorEvents.SelectedItem.DoubleClick();
System.Threading.Thread.Sleep(1000);
log.Info($"SelectMainEventViaErrorEvent({eventIdx}) selected error event = {errorEvents.SelectedItemText}");
log.Info($"SelectMainEventViaErrorEvent({eventIdx}) selected main event = {mainEvents.SelectedItemText}");
if (errorEvents.SelectedItemText == mainEvents.SelectedItemText)
{
bSuccess = true;
}
return bSuccess;
}
Утомительный, но портативный путь состоит в том, чтобы создать Ваши строки с помощью числовых управляющих кодов. Например:
wchar_t *string = L"דונדארןמע";
становится:
wchar_t *string = "\x05d3\x05d5\x05e0\x05d3\x05d0\x05e8\x05df\x05de\x05e2";
Необходимо преобразовать все символы Unicode в числовые Escape. Тем путем Ваш исходный код становится независимым от кодирования.
Можно использовать сетевые инструменты для преобразования, такие как этот. Это производит формат Escape JavaScript \uXXXX
, поэтому просто поиск и замена \u
с \x
получить формат C.
Необходимо сказать GCC который кодирование использования файла кодировать те символы в файл.
Используйте опцию -finput-charset=charset
, например, -finput-charset=UTF-8
. Затем необходимо сказать это о кодировании, используемом для тех строковых литералов во времени выполнения. Это определит значения wchar_t объектов в строках. Вы устанавливаете то использование кодирования -fwide-exec-charset=charset
, например, -fwide-exec-charset=UTF-32
. Остерегайтесь это размер кодирования (utf-32 нуждается в 32 битах, utf-16 нужны 16 битов), не должен превышать размер wchar_t
использование gcc.
Можно скорректировать это. Та опция главным образом полезна для компиляции программ для wine
, разработанный, чтобы быть совместимым с окнами. Опцию называют -fshort-wchar
, и скорее всего затем будут 16 битов вместо 32 битов, который является его обычной шириной для gcc на Linux.
Те опции описаны более подробно в man gcc
, gcc страница справочника.