![]() |
eXeL@B —› Программирование —› IntToHex VC++ (unicode) |
Посл.ответ | Сообщение |
|
Создано: 21 марта 2009 20:03 · Поправил: SVIN95 · Личное сообщение · #1 Пытаюсь создать функцию IntToHex (как в билдере). Два пареметра - само число и кол-во знаков (до 8). Возвращает значение типа LPCWSTR (строка в юникоде). Привожу упрощенный вариант функции (без возможности задать кол-во символов) Code:
Получаю сообщение об ошибке - "Run-Time Check Failure #2 - Stack around the variable 'WResult' was corrupted.". Уже долго мучаюсь. С функцией, в которой есть возможность задавать количество знаков тоже самое. Уже пробовал сначала поставить ZeroMemory(&WResult, sizeof(WResult)). Не помогает. В чем дело? P.S. _itow не предлагать. Нет возможности задать маску. ADDED: значение переменной Result нормальное. Значит преобразовывается нормально. Но почему-то ошибка при выполнении return (Result); ![]() |
|
Создано: 21 марта 2009 20:49 · Поправил: NetSpider · Личное сообщение · #2 Может я чего то непонимаю. Не маловато ли 8 символов для WResult? Поставьте wchar_t WResult[256]; Крашиться не должно. Или уж, если 256 дико, то можно 64. P.S. Только что проверил. Дело действительно в этом. С wchar_t WResult[10]; работало нормально ![]() P.S.S А падает прога скорее всего из-за того, что память для строки выделяется из стека. Функция wsprintf при преобразовании возможно затирает, то что ей не положено. ![]() |
|
Создано: 21 марта 2009 21:26 · Поправил: SVIN95 · Личное сообщение · #3 |
![]() |
eXeL@B —› Программирование —› IntToHex VC++ (unicode) |
Эта тема закрыта. Ответы больше не принимаются. |