ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

09.12.2009, 10:29
|
|
Участник форума
Регистрация: 19.05.2007
Сообщений: 281
Провел на форуме: 2823587
Репутация:
106
|
|
Сообщение от winterfrost
fclose(fp);
- если файл не открылся, мб и не надо его закрывать? =)
В этом ты прав)
The fopen() function opens a file indicated by fname and returns a stream associated with that file. mode is used to determine how the file will be treated (i.e. for input, output, etc).
If there is an error, fopen() returns NULL.
Если файл не открыт то он пытается закрыть указатель на адрес файла который равен 0 поэтому и получает ошибку сегментации 
|
|
|

09.12.2009, 11:18
|
|
Познающий
Регистрация: 18.08.2008
Сообщений: 45
Провел на форуме: 418790
Репутация:
64
|
|
Код:
if ((fp=fopen(files[i],"r+"))==NULL) {
perror("fopen");
i++;
continue; // <--
}
попробуй добавить continue, что-бы перейти к следующей интерации цикла
|
|
|

09.12.2009, 11:41
|
|
Участник форума
Регистрация: 27.10.2008
Сообщений: 215
Провел на форуме: 810079
Репутация:
90
|
|
Всем спасибо, исправил.
|
|
|

09.12.2009, 17:03
|
|
Постоянный
Регистрация: 06.05.2007
Сообщений: 393
Провел на форуме: 1510937
Репутация:
398
|
|
кто в курсе как проактивно защитить файл от удаления в системе windows ?
типа LockFileEx, ZwLockFileEx, NtLockFileEx
|
|
|

09.12.2009, 17:13
|
|
Познающий
Регистрация: 16.07.2008
Сообщений: 82
Провел на форуме: 424387
Репутация:
142
|
|
кто в курсе как проактивно защитить файл от удаления в системе windows ? типа LockFileEx, ZwLockFileEx, NtLockFileEx
Удаление файла сводиться к отсылке IRP_MJ_SET_INFORMATION c FileInformationClass = FileDispositionInformation.
Вывод: писать драйвер фильтр фс и отклонять такие irp для нужного файла.
Последний раз редактировалось _antony; 09.12.2009 в 17:15..
|
|
|

09.12.2009, 19:42
|
|
Участник форума
Регистрация: 10.08.2009
Сообщений: 238
Провел на форуме: 724939
Репутация:
108
|
|
Подскажите, как в Visual Studio 2008 в PictureControl программно загрузить картинку JPG из файла, на API.
|
|
|

09.12.2009, 21:28
|
|
Новичок
Регистрация: 10.03.2009
Сообщений: 10
Провел на форуме: 84536
Репутация:
0
|
|
Подскажите функцию, которая при закрытии формы выдавала бы информационное сообщение с кнопками Да, Нет, Отмена. При нажатии да - открывается окно для сохранения файла, при нажатии нет - программа закрывается, при отмене - остаётся всё как было.
|
|
|

09.12.2009, 21:43
|
|
Участник форума
Регистрация: 19.05.2007
Сообщений: 281
Провел на форуме: 2823587
Репутация:
106
|
|
Сообщение от kopBaJIoJI
Подскажите функцию, которая при закрытии формы выдавала бы информационное сообщение с кнопками Да, Нет, Отмена. При нажатии да - открывается окно для сохранения файла, при нажатии нет - программа закрывается, при отмене - остаётся всё как было.
необходимо перехватить событие закрытие формы и вызвать свою функцию. В Qt допустим достаточно переопределить функцию закрытия формы в классе пример отлично разбирается в книге Qt 4. Программирование GUI на С++. В WinAPI примерно так:
PHP код:
#include <windows.h>
// Объявления функций
BOOL RegClass(WNDPROC, LPCTSTR, UINT);
LRESULT CALLBACK WndProc(HWND,UINT, WPARAM, LPARAM); // оконные процедуры
HINSTANCE hInstance;
char szMainClass[] = "MainClass";
char szTitle[] = "Пример 1.2";
// Главная функция приложения
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst,
LPSTR IpszCmdLine, int nCmdShow)
{
MSG msg;
hInstance = hInst;
HWND hwnd;
if (!RegClass(WndProc, szMainClass, COLOR_DESKTOP))
return FALSE;
// До создания окна узнаём габариты экрана в пикселях
int w = GetSystemMetrics(SM_CXSCREEN) - 1; // Ширина
int h = GetSystemMetrics(SM_CYSCREEN) - 1; // Высота
hwnd = CreateWindow(szMainClass, szTitle,
WS_POPUPWINDOW | WS_CAPTION |
WS_MINIMIZEBOX | WS_VISIBLE,
0, 0, w, h, 0, 0, hInstance, NULL);
if (!hwnd) return FALSE;
while (GetMessage(&msg, 0, 0, 0)) DispatchMessage(&msg);
return msg.wParam;
}
BOOL RegClass(WNDPROC Proc, LPCTSTR szName, UINT brBackground)
{
WNDCLASS wc;
wc.style = wc.cbClsExtra = wc.cbWndExtra = 0;
wc.lpfnWndProc = Proc;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(brBackground + 1);
wc.lpszMenuName = (LPCTSTR) NULL;
wc.lpszClassName = szName;
return (RegisterClass(&wc) != 0);
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg,
WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
case WM_DESTROY:
{
PostQuitMessage(0);
return 0;
}
case WM_CLOSE:
{
// ТУТ ТВОЙ МЕСАДЖ БОКС И ЕГО ОБРАБОТКА
return 0;
}
}
return DefWindowProc(hwnd, msg, wParam, lParam);
}
|
|
|

09.12.2009, 21:46
|
|
Новичок
Регистрация: 10.03.2009
Сообщений: 10
Провел на форуме: 84536
Репутация:
0
|
|
Благодарю!
|
|
|

09.12.2009, 21:58
|
|
Новичок
Регистрация: 02.12.2009
Сообщений: 16
Провел на форуме: 101734
Репутация:
21
|
|
MessageBox не подходит?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|