Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ WinAPI Файл или папка? https://www.cyberforum.ru/ win-api/ thread1805779.html
Всем привет! Не думал, что это окажется так сложно, но как, зная полное имя файла определить, является ли он обычным файлом или директорией?
C++ WinAPI Сменить текущий каталог при запуске
Допустим моя программа находится в одном каталоге - D:\\myprog.exe, а другая, запускаемая в - С:\\test.exe. Я запускаю test.exe через CreateProcess, как сделать чтобы запускаемая программа искала ресурсы не по своему текущему местоположению - (С:\\), а по место положению родительской программы (D:\\)? Вроде как надо делать некие манипуляции с lpCurrentDirectory?
C++ WinAPI Про перерисовку окна/области https://www.cyberforum.ru/ win-api/ thread1805465.html
в win95 окно, при перекрытии другим, объявлялось недействительным. сейчас его содержимое сохраняется или вовсе не реагирует? и почему если скрыть часть окна, перетащив вправо,влево или вниз за границы, то она становится недействительной?
C++ WinAPI Создать диалоговое окно - анкету создать диалоговое окно - анкету ФИО дата рождения - три текстовых поля Пол-радиокнопки иностранные языки, которыми владеете - чекбоксы дополнительная информация - многострочное поле кнопки - сброс и отправка при нажатии отправки формируется отчет и отображается на поле(не для ввода справа). Помогите не могу ничего понять?Срочно нужна ваша помощь :help: https://www.cyberforum.ru/ win-api/ thread1805450.html
Как отловить событие WM_SIZE? C++ WinAPI
создаю окно, wndproc switch (Message) { case WM_CLOSE: case WM_SIZE: PostMessage(nullptr, Message, wParam, lParam); return 0; break; } return DefWindowProc(hWnd, Message, wParam, lParam);
C++ WinAPI Как дождаться закрытия файла? https://www.cyberforum.ru/ win-api/ thread1805207.html
Допустим открываем файл, а потом закрываем file.close(); Или открываем для чтения ресурсов и закрываем FreeLibrary(hModule); Так вот На выполнение file.close(); или FreeLibrary(hModule); уходит какое то время, может даже десяток секунд. То есть файл не закрывается мгновенно. Если к примеру файл закрыть и тут же попробовать его удалить , то может произойти ошибка, так как фактически он закроется...
C++ WinAPI Некорректное возвращения значения GetModuleFileName и VirtualProtect + MessageBox https://www.cyberforum.ru/ win-api/ thread1805189.html
Здравствуйте. Осваиваю использование dll. В инете нашел простенький пример использование. Но что то пошло не так... MyDLL.DLL //DLLTEST.H #ifndef _DLLTEST_H_ #define _DLLTEST_H_ #include <iostream> #include <stdio.h> #include <windows.h>
Контейнерный класс для представления арифметического выражения C++ WinAPI
Получил в университете такое вот задание: Необходимо реализовать класс контейнерного типа. Кроме перечисленного, класс должен обеспечивать перемещающий конструктор и перемещающий оператор присваивания, конструирование из списка инициализации (std::initializer_list). Также, наряду с обычными методами добавления элемента в контейнер, должны быть реализован(ы) метод(ы) типа emplace. Также необходимо...
C++ WinAPI Как сделать окно неподвижным? https://www.cyberforum.ru/ win-api/ thread1805141.html
MoveWindow() как-то не очень Добавлено через 1 час 40 минут И еще маленький вопрос: почему если быстро менять цвет окна(программно, без доп. задержки), то оно просто "ломается", но не вылетает?
C++ WinAPI Сохранить скриншот в файл или получить массив байт https://www.cyberforum.ru/ win-api/ thread1804953.html
В идеале нужно получить массив байт изображения, но можно и просто сохранить скриншот в файл. Скриншот делаю таким образом // get the device context of the screen HDC hScreenDC = CreateDC("DISPLAY", NULL, NULL, NULL); // and a device context to put it in HDC hMemoryDC = CreateCompatibleDC(hScreenDC); int width = GetDeviceCaps(hScreenDC, HORZRES); int height = GetDeviceCaps(hScreenDC,...
Адаптировать команду head (Unix) WINAPI на Windows C++ WinAPI
Всем привет, в универе задали задачу адаптировать команду head (Unix)(ключи -c, -n, -help), выводящую первые n строк из файла с помощью WINAPI на Windows. Впервые с таким сталкиваюсь, гугл запросы ничего не дают(либо не умею гуглить:( ). Подскажите, пожалуйста, что надо почитать для выполнения этой задачи, желательно бы еще сам код.
C++ WinAPI Вшитие mp3/wav файла в проект https://www.cyberforum.ru/ win-api/ thread1804881.html
Хочу сделать проект с музыкой, но для этого мне нужно её вшить туда. Можете скинуть код, как это сделать?
4 / 4 / 5
Регистрация: 19.08.2016
Сообщений: 137
0

Краш программы с STATUS_STACK_BUFFER_OVERRUN - C++ WinAPI - Ответ 9531716

11.09.2016, 13:56. Показов 1751. Ответов 8
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Привет всем!

Делаю программу, основанную на рекурсивном поиске файлов, и всё работает отлично, НО!

Когда программа завершается, происходит крушение с ошибкой STATUS_STACK_BUFFER_OVERRUN.

Комментирование различных частей когда указывает на то, что проблема в функции RecursiveSearch, но найти причину там я не смог.

Вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <Windows.h>
#include <iostream>
 
using namespace std;
 
struct file
{
    char   *path;
    HANDLE hFile;
    file   *next;
};
 
file *FirstFile, *NextFile, *CurrentFile;
 
int files = 0;
 
void FileProcess(WIN32_FIND_DATA *FileData, char *path)
{
    //Тут весь код закомментирован, а значит, не имеет отношения к проблеме.
}
 
void RecursiveSearch(WIN32_FIND_DATA *FileData, char *path)
{
    char *lastChar = path + lstrlen(path);
    lstrcat(path, "*");
 
    HANDLE hFind = FindFirstFile(path, FileData);
 
    *lastChar = 0;
 
    if (hFind != INVALID_HANDLE_VALUE) do
    {
        if (!((!lstrcmp(FileData->cFileName, ".") || !lstrcmp(FileData->cFileName, ".."))))
        {
            if (FileData->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
            {
                lstrcat(path, FileData->cFileName);
                lstrcat(path, "");
 
                RecursiveSearch(FileData, path);
 
                *lastChar = 0;
            }
            else
            {
                FileProcess(FileData, path);
                *lastChar = 0;
            }
        }
    } while (FindNextFile(hFind, FileData));
 
    FindClose(hFind);
}
 
void main()
{
    FirstFile = new file;
 
    NextFile = FirstFile;
 
    char command[128];
    char path[128];
 
    WIN32_FIND_DATA FileData;
 
    char curDrive[] = "A:\";
 
    DWORD DiskMask = GetLogicalDrives();
 
    for (int i = 0; i < 26; i++) {
        if (DiskMask & 1) {
            cout << "Try to protect disk " << curDrive << "... Please wait...\n";
 
            lstrcpy(path, curDrive);
 
            RecursiveSearch(&FileData, path);
 
            cout << "Success! Next disk...\n";
        }
        DiskMask >>= 1;
 
        curDrive[0]++;
    }
 
    system("cls");
    cout << "All files has been protected!\n";
    system("pause");
    system("cls");
}
Компилирую под консольное приложение. В таком виде код ничего не делает, но ошибка всё же проявляется. Кто найдёт, тот молодец)

Добавлено через 6 минут
Если даже сороковую строку закомментировать - ошибка исчезает.

Вернуться к обсуждению:
Краш программы с STATUS_STACK_BUFFER_OVERRUN C++ WinAPI
0
Заказать работу у эксперта
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.09.2016, 13:56
Готовые ответы и решения:

Подскажите как убрать краш программы
Здравствуйте! В общем дана задача: Написть приложение , которое &quot;угадывает&quot;задуманное...

Зацикливание программы (вечный цикл->краш программы)
Доброго времени суток. Такая тема: procedure Game(); //Событие &quot;игра&quot; begin while...

Краш программы
Господа, Добрый день! может быть кто-нибудь знает, где искать ошибку? Никакой код не исполняется,...

Краш программы
Из за чего крашит мою программу в 1 запросе я ввожу: C:\test.. во 2 запросе я ввожу: ...

8
11.09.2016, 13:56
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.09.2016, 13:56
Помогаю со студенческими работами здесь

Краш программы
Создал прогу, скомпилил, у одного из пользователей крашится с ошибкой ниже Сигнатура проблемы:...

Краш программы
Хелп! Программа крашится после ввода значения. #include&lt;iostream&gt; #include&lt;vector&gt; int...

Краш программы
Народ, помогите разобраться пожалуйста. Из за этого кода прога крашится. В чем может быть...

Краш программы
Добрый день, такой вопрос, почему крашится программа если обращаюсь таким образом к последнему...

0
Новые блоги и статьи
Что такое хорошо и что такое плохо, вид сбоку. Индивид и общество - грань не нарушения.
Hrethgir 18.01.2025
В моей личной жизни и времени, я рассуждаю категорией "хуже-лучше", в том плане, когда меня спросили например - "а зачем ты делаешь свой процессор?", то я ответил - "чтобы сделать свою жизнь лучше". . .
Передача по ссылке или по значению в Java?
InfoMaster 18.01.2025
В мире программирования на Java одним из ключевых аспектов, требующих глубокого понимания, является механизм передачи параметров в методы. Этот фундаментальный концепт часто становится источником. . .
Тернарный условный оператор в Python
InfoMaster 18.01.2025
В мире программирования существует множество инструментов и конструкций, позволяющих создавать эффективный и лаконичный код. Одним из таких инструментов является тернарный условный оператор, который. . .
Как удалить неотслеживаемые файлы из рабочего дерева Git
InfoMaster 18.01.2025
В процессе разработки программного обеспечения с использованием системы контроля версий Git часто возникает необходимость в управлении неотслеживаемыми файлами. Неотслеживаемые файлы (untracked. . .
Что делает код if __name__ == "__main__": в Python
InfoMaster 18.01.2025
В мире программирования на Python существует множество важных концепций, и одной из наиболее интересных является конструкция if __name__ == "__main__". Эта специальная конструкция играет ключевую. . .
Как заставить Git забыть об отслеживаемом файле, добавленном в .gitignore
InfoMaster 18.01.2025
В мире разработки программного обеспечения система контроля версий Git стала неотъемлемой частью рабочего процесса, позволяя эффективно отслеживать изменения в коде и управлять ими. Однако. . .
Что означает use strict в JavaScript и для чего используется
InfoMaster 18.01.2025
В мире современной веб-разработки JavaScript играет ключевую роль как один из основных языков программирования. По мере его эволюции возникла необходимость в механизмах, которые помогли бы. . .
Как работать со скрытыми (hidden) элементами в jQuery
InfoMaster 18.01.2025
В современной веб-разработке управление видимостью элементов на странице является одним из ключевых аспектов создания интерактивных пользовательских интерфейсов. jQuery предоставляет мощный набор. . .
Как переключаться между ветками (Branch) с помощью checkout в Git
InfoMaster 18.01.2025
Ветки в Git являются одной из ключевых концепций для управления версионностью кода, позволяя разработчикам эффективно работать в команде и параллельно развивать программные проекты. Каждый новый. . .
Что такое стек и куча, чем они отличаются и где находятся
InfoMaster 18.01.2025
Понимание основных концепций памяти в программировании В мире современного программирования эффективное управление памятью играет ключевую роль в создании производительных и надежных приложений. . . .
Как использовать комментарии в JSON
InfoMaster 18.01.2025
JSON (JavaScript Object Notation) представляет собой легкий и широко используемый формат обмена данными, который стал стандартом де-факто для веб-приложений и программных интерфейсов. При работе с. . .
Как заставить git pull перезаписать локальные файлы в Git
InfoMaster 18.01.2025
Проблема перезаписи локальных файлов в Git При работе с системой контроля версий Git разработчики часто сталкиваются с ситуацией, когда необходимо синхронизировать локальный репозиторий с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru