Форум программистов, компьютерный форум, киберфорум
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 16.04.2019
Сообщений: 2
1

Возврат строки из функции

16.04.2019, 19:29. Показов 605. Ответов 3
Метки нет (Все метки)

Всем привет. Написал следуюущую фунцию для генерации рандомных строк :

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
LPWSTR RandomString(int Count)
{
    HMODULE hDLL = GetModuleHandleW(L"ntdll.dll");
    if (hDLL != NULL)
    {
        typedef ULONG(WINAPI* RtlRandomEx)(PULONG Seed);
        RtlRandomEx xRtlRandomEx = (RtlRandomEx)GetProcAddress(hDLL, "RtlRandomEx");
        LPWSTR CharList = L"abcdefghijklmnopqrstuvwxyz";
        LPWSTR String = (LPWSTR)LocalAlloc(0, Count + 1);
        String[Count] = 0;
        for (int i = 0; i < Count; i++)
        {
            ULONG Seed = GetTickCount();
            String[i] = CharList[xRtlRandomEx(&Seed) % lstrlenW(CharList)];
        }
        return String;
    }
    return NULL;
}
При генерации строки в 20+ символов - получаю исключение. Подскажите пожалуйста, в чем моя ошибка. Спасибо.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2019, 19:29
Ответы с готовыми решениями:

Возврат строки из функции
//char perfomers; //char _perfomers; char GetPerfomers(){strcpy(_perfomers,perfomers);return...

Возврат строки из функции
ну столкнулся с такой задачей недавно скажите по средствам stdio.h такой трюк не оформить? я...

Возврат строки из функции
Здравствуйте. Пишу программу для работы с процессами, мне нужно, чтобы в функцию передавался PID, а...

Возврат строки из функции по указателю
Здравствуйте. Обьясните пожалуйсто, почему компилятор выдает предупреждение при выполнении...

3
1360 / 997 / 316
Регистрация: 28.07.2012
Сообщений: 2,759
16.04.2019, 20:23 2
Цитата Сообщение от Vormittag Посмотреть сообщение
получаю исключение
Ты забыл, что размер WCHAR равен 2 байта.
0
0 / 0 / 0
Регистрация: 16.04.2019
Сообщений: 2
16.04.2019, 21:37  [ТС] 3
Возвращаемое значение не влезает в стек? Не совсем понял.
0
1360 / 997 / 316
Регистрация: 28.07.2012
Сообщений: 2,759
16.04.2019, 23:27 4
Цитата Сообщение от Vormittag Посмотреть сообщение
C++
1
LPWSTR String = (LPWSTR)LocalAlloc(0, Count + 1);
C++
1
LPWSTR String = (LPWSTR)LocalAlloc(0, (Count + 1) * sizeof(WCHAR));
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.04.2019, 23:27

Возврат каретки и перевод строки в приглашении Командной строки
В строке приглашения MS-DOS после вывода всей информации перейти на новую строчку. как это сделать?

Передача строки в функцию и возврат строки как результата
Короче товарищи замучился я со строками в си, поскольку перешел из delphi там с этим проблем нет. И...

Возврат 2 значений из функции с одним вызовом этой же функции
Вообщем где то в какой то игре была хукнута одна функция int function(int arg1,int arg2,int...

Возврат функции
Всем доброго времени суток! Пишу трейд-бота для стима( принимает вещи и отдает их в автоматическом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.