В цпп меня всегда пугал синтаксис. Взять хотя бы пример из недавней статьи на хабре.
LPVOID, епта! Сломай язык нах! Ещё эта гора капса, тайпкастов и процедурный стиль API. Если вдуматься, для европейца это звучит примерно так:
Или так:
Навеяно общением с
rushtf, там же и придумано.
Впрочем, такой пиздец в основном характерен при работе со всяким винапи, сиплюсплюс может выглядеть красиво, я видел.
LPVOID lpProc = VirtualAllocEx(processHandel, NULL, ProcSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE );
LPVOID lpParams = VirtualAllocEx(processHandel, NULL, 1024, MEM_COMMIT, PAGE_READWRITE );
...
DWORD ThreadID;
HANDLE hThread = CreateRemoteThread(processHandel, NULL, 0, (LPTHREAD_START_ROUTINE)lpProc, lpParams, 0, &ThreadID);
if (hThread == NULL) {
sprintf_s(buffer, "Error creating thread");
addLogMessage(buffer, 1001);
}LPVOID, епта! Сломай язык нах! Ещё эта гора капса, тайпкастов и процедурный стиль API. Если вдуматься, для европейца это звучит примерно так:
ЛПХУЙ ЛППРОЦ = ВИРТУАЛНАЛОЖИПЛЮС (РУЧКАПРОЦЕССА, НИХУЯ, РАЗМЕРПРОЦ, ВПАМЯТЬНАСРИ, ПОДКАЧКУКАЗНИТУДАСЮДА);Или так:
ДАСЛОВО НИТЬИД;
РУЧКА ХНИТЬ = СОЗДАТЬУДАЛЁННУЮНИТЬ(ПРОЦЕССРУЧКА, НИХУЯ, НОЛИК, (ЛПНИТЬ_НАЧАЛО_РУТИННОЕ)ЛПРОК, ЛППАРАМЕТРЫ, НОЛИК, ИНИТЬИД);
ЕСЛИ(ХНИТЬ == НИХУЯ) {
СНАПЕЧАТАТЬФ(БУФЕРА, "Пиздец при создании нити");
ДОБАВИТЬЛОГСООБЩЕНИЕ(БУФЕРА, АДИНАДИНАДИН);
}Навеяно общением с
Впрочем, такой пиздец в основном характерен при работе со всяким винапи, сиплюсплюс может выглядеть красиво, я видел.
СсылкаКомментировать »