вторник, 9 декабря 2014 г.

Подсветка синтаксиса программного кода в Blogger ( blogspot )

#include<iostream>

int main()
{
    std::cout << "Hello World!" << std::endl;
    std::cin.get();
    return 0;
}
Дошли руки разобраться с подсветкой синтаксиса для блога, сразу пилю заметку (в сети много копипасты, пусть будет альтернативное изложение).

вторник, 11 марта 2014 г.

Qt основы многопоточности

Правильная реализация многопоточности Qt

В старых учебниках по Qt (того же Шлее) указывается, что для создания потока, необходимо унаследоваться от класса QThread, перегрузив виртуальный метод void run(), в духе Java. Проблема в том, что с некоторого времени класс QThread перестал быть чисто виртуальным (абстрактным), что уже не требует реализации метода run() и какого-либо наследования. Специалисты и документация утверждают, что QThread является вполне себе интерфейсом к объекту потока, и что наследование от него обязательно приведет к беде при использовании сигналов и слотов базового класса.


четверг, 20 февраля 2014 г.

IBM Lotus Notes, проблема с запуском.



Патологически мне не везет на корпоративную почту. В этот раз я сижу в обнимку с и без того печальным IBM Lotus Notes.



Признаки



После запуска просит предъявить пароль. После ввода "моргает" главным окном и впадает в вечную загрузку под сплеш-скрин с зациклившимся прогрессбаром. На повторный запуск сразу - никакой реакции, в памяти висят 3-4 процесса. Если их убить, ситуация повторяется. Перезагрузка не помогает.


вторник, 11 февраля 2014 г.

Си и ООП

Наверное, стоило бы ребенка на велосипеде с квадратным колесом ставить сейчас. Сегодня будем фантазировать на тему ООП на С.

Что-то вроде боли или сплиттер в диалоге

Сколько раз собирался, но это уже край) Хочу передать сердешный привет компании Microsoft с ее замечательным фреймворком для программирования на C++ под Windows - MFC (Microsoft Foundation Classes). Я не считаю себя гуру или даже профессионалом C++/Windows. Много раз сталкивался с этим тулом на мелких задачах и каждый раз он меня удивлял своей неоднозначностью. Иногда на нем задача решается элегантно, в 3 строки, которые, если лень, можно еще и обернуть в необходимые классы, нагенерив их Wizard'ом. А порой начинается ад: не понятно что, как и куда пихать, классы путаются с POD-струкрурами, StackOverflow радует примерами на чистом С. Ну так вот. Потом я познакомился с WindowForms в .Net Framework (что казалось полным трапом, ибо совсем все просто О_о ), затем Java с ее AWT/Swing, далее вовсе QtGui. Сердце подсказывало опасаться MFC и тратить время с пользой - собственно на winAPI.

Проект со злосчастным сплиттером - внутри


вторник, 28 января 2014 г.

Конвертирование изображений OpenCV в CBitmap (MFC-winapi).

Так и не смог найти ресурс, где бы это обсуждалось более сниппета кода с использованем каких-то не документированных функций winapi и OpenCV. Что странно, тема-то популярная. В основном помогла разобраться википедия . Русская версия достаточно скудна, потому долго не мог понять, как правильно выравнивать буфер данных в памяти.
Имеем: указатель на структуру IplImage из OpenCV и указатель на CBitmap (тонкая обертка над BITMAP в MFC).



В последнем нас интересует исключительно метод CBitmap::CreateBitmap(), который инициализирует класс.

BOOL CreateBitmap( 
int nWidth,
int nHeight,
UINT nPlanes,
UINT nBitcount,
const void* lpBits
);