Archive for C++

Мистерия: if (something==NULL) или if (NULL==something)?

   Нека разгледаме следния програмен отрязък:

if (NULL == someApiPointer)
{
  //do something here
};

Защо сравняваме NULL със стойността на someApiPointer, а не обратното - както са ни учили в училище и както изглежда по-логично?
Когато за първи път срещнах подобна конструкция си помислих, че има нещо специално в нея - прави се от гледна точка на сигурността или пък е нов стил на писане?

Продължение » » »

Print This Post Print This Post
1 Star2 Stars3 Stars4 Stars5 Stars (7 votes, average: 5.00 out of 5)
Loading ... Loading ...

Безумната комбинация CreateToolhelp32Snapshot + TH32CS_SNAPTHREAD

CreateToolhelp32Snapshot е основна функция що се отнася до изброяване на процеси, модули, нишки и heap-ове. В MSDN тя е дефинирана така:

HANDLE WINAPI CreateToolhelp32Snapshot(
  __in  DWORD dwFlags,
  __in  DWORD th32ProcessID
);

Най-просто казано първият параметър указва каква информация ще се изисква, а вторият - процесът, за който се отнася въпросната информация.

Нека за момент си представим, че искате да получите списък с нишките, които принадлежат на даден процес. Необходимият флаг е TH32CS_SNAPTHREAD. По инерция въвеждате и идентификатора на процеса, който Ви интересува. Изпълнявате и ХОП - ИЗНЕНАДА!  Сдобивате се със списък на всички активни в операционната система нишки (до които имате достъп), а не за конкретната програма?!?

Продължение » » »

Print This Post Print This Post
1 Star2 Stars3 Stars4 Stars5 Stars (17 votes, average: 5.00 out of 5)
Loading ... Loading ...

Спомняте ли си Turbo Pascal и Turbo C/C++?

   Преди години това бяха два продукта, които промениха начина, по който се програмира. Голямата новост беше, че те предлагат интегрирана среда за програмиране (IDE), макар и в текстов режим. Години след това имената им се промениха, бяха мигрирани към графичен интерфейс, IDE частта им ставаше все по-добра и лесна за употреба. Цената им обаче - твърде висока за повечето потребители.

Добрата новина е, че някои от големите компании, които се занимават с разработката на IDE и компилатори предоставят и по-орязани версии на своите продукти на цена $0 т.е. безплатно. Въпреки намалената си функционалност те са изключително подходящи за изучаване на различните програмни езици в училищата (часовете по информатика/ИТ).

Продължение » » »

Print This Post Print This Post
1 Star2 Stars3 Stars4 Stars5 Stars (15 votes, average: 5.00 out of 5)
Loading ... Loading ...