Удаление файла сводиться к отсылке IRP_MJ_SET_INFORMATION c FileInformationClass = FileDispositionInformation. Вывод: писать драйвер фильтр фс и отклонять такие irp для нужного файла.
Подскажите, как в Visual Studio 2008 в PictureControl программно загрузить картинку JPG из файла, на API.
Подскажите функцию, которая при закрытии формы выдавала бы информационное сообщение с кнопками Да, Нет, Отмена. При нажатии да - открывается окно для сохранения файла, при нажатии нет - программа закрывается, при отмене - остаётся всё как было.
необходимо перехватить событие закрытие формы и вызвать свою функцию. В 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); }
Да, подошло, сделал через MessageBox в FormCloseQuery. Теперь другая проблема: как загрузить .jpg/.jpeg в TImage? Прописал в библиотеках jpeg.hpp, всёравно не загружает, пишет, что неизвестный формат. Подскажите пожалуйста
Пытаюсь реализовать алгоритм перевода из фиксированной формы записи мат. выражения к постфиксной(обратной польской форме). Есть код хорошо реализованный, С++. Но главного, что мне надо нет: поддержка сложных функций типа cos,tg,abs и др. Code: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include <ctype.h> #include <assert.h> int tok; double tokval; int next() { for (;;) { int c = getchar(); if (c == EOF || strchr("+-*/^()\n", c) != NULL) return tok = c; if (isspace(c)) continue; if (isdigit(c) || c == '.') { ungetc(c, stdin); scanf(" %lf", &tokval); return tok = 'n'; } fprintf(stderr, "Bad character: %c\n", c); abort(); } } void skip(int t) { assert(tok == t); next(); } double expr(); // numpar ::= number | '(' expr ')' double numpar() { if (tok == 'n') { double x = tokval; skip('n'); return x; } skip('('); double x = expr(); skip(')'); return x; } // factor ::= numpar | numpar '^' factor double factor() { double x = numpar(); if (tok == '^') { skip('^'); x = pow(x, factor()); } return x; } // term ::= factor | term '*' factor | term '/' factor double term() { double x = factor(); for (;;) { if (tok == '*') { skip('*'); x *= factor(); } else if (tok == '/') { skip('/'); x /= factor(); } else return x; } } // expr ::= term | expr '+' term | expr '-' term double expr() { double x = term(); for (;;) { if (tok == '+') { skip('+'); x += term(); } else if (tok == '-') { skip('-'); x -= term(); } else return x; } } int main() { next(); while (tok != EOF) { if (tok == '\n') { skip('\n'); continue; } printf("%.9g\n", expr()); } return 0; } Кто сможет помочь расширить его доп. функциями буду безгранично благодарен )) ..я тут не уследил где идёт простановка приоритетов ф-ий даже.. возможно в этом загвоздка. спасибо)
Кто пишет, что неизвестный формат? Зачем jpeg.hpp в библиотеки, если это инклуд? В гугле по поиску jpeg.hpp нашлась масса статей и примеров. Они не работают?
я хочу заняться изучением с++, для начала напишу одну нужную мне программу (использование бд, добваление, удаление и поиск записей). Вопрос, какую среду разработки выбрать? Правильно я скачал Microsoft Visual C++ 2008 express edition? Бесплатный ли он? Посоветуйте офф книгу для чайников. Заранее спасибо.
cremator (c) boost.spirit поизучай. или AntLR. писать вручную грамматики на плюсах - дело не очень благодарное.
Да , только сначала надо иметь теоретический минимум. Отсылаю Вас к этой книге http://www.ozon.ru/context/detail/id/2427699/ .
Ra$cal, дело в том, что мне не нужны сложные классы парсеров и тому подобного. Мне для ргз по С++ надо сдать, в качестве своей работы) Вот поэтому и подумал может кто-то поможет разобраться в этом. С++ совсем недавно изучаю, в дельфи я бы легко нарисовал всё это..
подскажите пожалуйста: есть среда разработки visual c++ 2005 express edition. Значит скомпилил я в ней программу. Пробую запустить: если из командной строки, то все отлично, а если из самой среды разработки, то получаю ошибку(функция open почему-то возвращает -1). Как это исправить? может в visual c++ стоит какой-то запрет на открытие файлов?
при запуске отладки в студии CurrentDirectory = директории проекта. Если же ты запускаешь сам exe, то директория меняется на туже плюс Debug. Кароч смотри где у тебя файл. Если путь относительный(без c:\\proj\\1.txt"), то проверяй, есть ли он в папке.
Подскажите плиз. как реализоать прогу. Задача такая. написать просмоторщик html, а лучше mht файлов в среде C++ Builder. Я хочу написать прогу которая окрыает и показывает html, но лучще mht файлы. аподскажите какие компоненты юзать и т.д. плиз
Если в стктуре для передачи данных в поток.Использовать обьекты со своим внутренним конструктором,типа всяких string,это приведет к утечке памяти?
вся суть использования string вместо char* и vector вместо массивов и заключается в защите от утечек памяти. почитай на вики http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D0%B0_%D0%B5%D1%81%D1%82%D1%8C_%D0%B8%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F
всем привет. Скомпилил я переборщик паролей в visual c++2005. При малой длине пароля и при малых алфавитах, все прекрасно работает. Но если ставить большие, то прога, отработав чуть больше часа, либо виснет, либо выдает ошибку типа: инструкция по адресу "0х00412759" обратилась к памяти по адресу "(тут разные значения получаются, например 0х0036с00а)". Память не может быть "read". Подскажите пожалуйста что тут вообще можно сделать: как найти эту инструкцию или что изменить для устранения ошибки или как выяснить в чем проблема.