- 1
#define true false
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+138
#define true false
happy debug!
+1001
bool f = true;
short c0 = a0, c1 = a1, c2 = a2, c3 = a3;
if (a0 < c1) { f = false; a0 = c1; a1 = c0 - c1; a2 = c1 - c2; a3 = c1 - c3; }
if (a0 < c2) { f = false; a0 = c2; a1 = c2 - c1; a2 = c0 - c2; a3 = c2 - c3; }
if (a0 < c3) { f = false; a0 = c3; a1 = c3 - c1; a2 = c3 - c2; a3 = c0 - c3; }
if (f) { a0 = c0; a1 = c0 - c1; a2 = c0 - c2; a3 = c0 - c3; }
Чувак не знает про else / else if. :(
+1001
// Функция регистрирующая ошибку
VOID SetError(DWORD dwError)
{
CHAR szErr[256];
sprintf(szErr, "%lu", dwError);
SetEnvironmentVariable("0xdeadc0de", szErr);
}
// Шеллкод
__declspec(dllexport)
VOID WINAPI Shell(REMSTART *pCtx)
{
pCtx->pLoadLibraryA(pCtx->sz);
CHAR szVar[] = {'0','x','d','e','a','d','c','0','d','e','\0'};
CHAR szErr[256];
if (!pCtx->pGetEnvironmentVariableA(szVar, szErr, sizeof(szErr)))
pCtx->pExitThread(ERROR_LOAD_HOOK_DLL);
DWORD dwError = 0;
for (DWORD i = 0; szErr[i]; i++)
{
dwError *= 10;
dwError += szErr[i] - '0';
}
pCtx->pExitThread(dwError);
}
Удивительнейший способ регистрации ошибок в функции DllMain при инжекте библиотеки шеллкодом из другого процесса (кто знает - тот поймет)... линк: http://www.wasm.ru/forum/viewtopic.php?id=43291
+997
class fileOutBuf : public streambuf
{
public:
// ...
typedef char char_type;
typedef int int_type;
typedef int streamsize;
// ...
int printf( const char * fpFormat, ... );
inline int vprintf( const char * fpFormat, va_list fvaList )
{
if ( NULL != dpFileDescriptor )
{
if ( true == sdVerboseFlag && false == dSkipVerboseOutput)
vfprintf( dpVerboseFileDescriptor, fpFormat, fvaList );
return vfprintf( dpFileDescriptor, fpFormat, fvaList );
}
else
{
if ( NULL != dpOutputFuncPtr )
return (*dpOutputFuncPtr)( fpFormat, fvaList );
}
return 0;
}
// ....
virtual int_type overflow( int_type c = EOF );
virtual streamsize xsputn( const char_type *s, streamsize n );
// ....
};
int fileOutBuf::printf( const char * fpFormat, ... )
{
va_list lvaList;
int lRet;
va_start( lvaList, fpFormat );
if ( NULL != dpFileDescriptor )
{
if ( true == sdVerboseFlag && false == dSkipVerboseOutput)
vfprintf( dpVerboseFileDescriptor, fpFormat, lvaList );
lRet = vfprintf( dpFileDescriptor, fpFormat, lvaList );
}
else
{
if ( NULL != dpOutputFuncPtr )
lRet = (*dpOutputFuncPtr)( fpFormat, lvaList );
}
va_end( lvaList );
return lRet;
}
fileOutBuf::int_type fileOutBuf::overflow( int_type c )
{
if ( NULL != dpFileDescriptor )
{
if ( true == sdVerboseFlag && false == dSkipVerboseOutput)
fputc( c, dpVerboseFileDescriptor );
return fputc( c, dpFileDescriptor );
}
else
return fileOutBuf::printf( "%c", c );
}
fileOutBuf::streamsize fileOutBuf::xsputn( const fileOutBuf::char_type *s, fileOutBuf::streamsize n )
{
if ( NULL != dpFileDescriptor )
{
if ( true == sdVerboseFlag && false == dSkipVerboseOutput)
fwrite( s, sizeof( char_type ), n, dpVerboseFileDescriptor );
return fwrite( s, sizeof( char_type ), n, dpFileDescriptor );
}
else
return fileOutBuf::printf( "%*s", n, s );
}
нетривиальная капипаста или делаем из мухи слона.
ЗЫ после удаления всей капипасты, от класа в целом осталось что-то около 50 строк.
+1002
BOOLEAN ConvertSizeToStr(__int64 size,TCHAR *buf,DWORD buf_size_c)
{
double dsize;
HRESULT hr;
dsize=(double)size;
if (size/1500000000000L>0)
{
dsize/=1099511627776L;
hr=StringCchPrintf(buf,buf_size_c,_T("%.2lf Тб"),dsize);
}
else if (size/1500000000L>0)
{
dsize/=1073741824L;
hr=StringCchPrintf(buf,buf_size_c,_T("%.2lf Гб"),dsize);
}
else if (size/1500000L>0)
{
dsize/=1048576L;
hr=StringCchPrintf(buf,buf_size_c,_T("%.2lf Мб"),dsize);
}
else if (size/1500>0)
{
dsize/=1024;
hr=StringCchPrintf(buf,buf_size_c,_T("%.2lf Кб"),dsize);
}
else
hr=StringCchPrintf(buf,buf_size_c,_T("%I64d байт"),size);
if (SUCCEEDED(hr))
return true;
else
return false;
}
Конвертировать байты в КБ/МБ/ГБ
+168
case IDC_LED1_ZERO:
if (::IsDlgButtonChecked (hWnd,IDC_LED1_ZERO) )
{
if (::IsDlgButtonChecked (hWnd,IDC_LED2_ANYSPEED) ||
::IsDlgButtonChecked (hWnd,IDC_LED3_ANYSPEED) ||
::IsDlgButtonChecked (hWnd,IDC_LED4_ANYSPEED) )
::CheckDlgButton(hWnd,IDC_LED1_ANYSPEED,0);
if (::IsDlgButtonChecked (hWnd,IDC_LED2_POSITION) ||
::IsDlgButtonChecked (hWnd,IDC_LED3_POSITION) ||
::IsDlgButtonChecked (hWnd,IDC_LED4_POSITION) )
::CheckDlgButton(hWnd,IDC_LED1_POSITION,0);
if (::IsDlgButtonChecked (hWnd,IDC_LED2_DIGITAL_INPUT) ||
::IsDlgButtonChecked (hWnd,IDC_LED3_DIGITAL_INPUT) ||
::IsDlgButtonChecked (hWnd,IDC_LED4_DIGITAL_INPUT) )
::CheckDlgButton(hWnd,IDC_LED1_DIGITAL_INPUT,0);
::CheckDlgButton(hWnd,IDC_LED1_TURN_UNDER,0);
::CheckDlgButton(hWnd,IDC_LED2_ZERO,0);
::CheckDlgButton(hWnd,IDC_LED3_ZERO,0);
::CheckDlgButton(hWnd,IDC_LED4_ZERO,0);
}
break;
case IDC_LED1_ANYSPEED:
if (::IsDlgButtonChecked (hWnd,IDC_LED1_ANYSPEED) )
{
if (::IsDlgButtonChecked (hWnd,IDC_LED2_ZERO) ||
::IsDlgButtonChecked (hWnd,IDC_LED3_ZERO) ||
::IsDlgButtonChecked (hWnd,IDC_LED4_ZERO) )
::CheckDlgButton(hWnd,IDC_LED1_ZERO,0);
if (::IsDlgButtonChecked (hWnd,IDC_LED2_POSITION) ||
::IsDlgButtonChecked (hWnd,IDC_LED3_POSITION) ||
::IsDlgButtonChecked (hWnd,IDC_LED4_POSITION) )
::CheckDlgButton(hWnd,IDC_LED1_POSITION,0);
if (::IsDlgButtonChecked (hWnd,IDC_LED2_DIGITAL_INPUT) ||
::IsDlgButtonChecked (hWnd,IDC_LED3_DIGITAL_INPUT) ||
::IsDlgButtonChecked (hWnd,IDC_LED4_DIGITAL_INPUT) )
::CheckDlgButton(hWnd,IDC_LED1_DIGITAL_INPUT,0);
::CheckDlgButton(hWnd,IDC_LED1_TURN_UNDER,0);
::CheckDlgButton(hWnd,IDC_LED2_ANYSPEED,0);
::CheckDlgButton(hWnd,IDC_LED3_ANYSPEED,0);
::CheckDlgButton(hWnd,IDC_LED4_ANYSPEED,0);
}
break;
case IDC_LED1_POSITION:
if (::IsDlgButtonChecked (hWnd,IDC_LED1_POSITION) )
{
if (::IsDlgButtonChecked (hWnd,IDC_LED2_ZERO) ||
::IsDlgButtonChecked (hWnd,IDC_LED3_ZERO) ||
::IsDlgButtonChecked (hWnd,IDC_LED4_ZERO) )
::CheckDlgButton(hWnd,IDC_LED1_ZERO,0);
if (::IsDlgButtonChecked (hWnd,IDC_LED2_ANYSPEED) ||
::IsDlgButtonChecked (hWnd,IDC_LED3_ANYSPEED) ||
::IsDlgButtonChecked (hWnd,IDC_LED4_ANYSPEED) )
::CheckDlgButton(hWnd,IDC_LED1_ANYSPEED,0);
if (::IsDlgButtonChecked (hWnd,IDC_LED2_DIGITAL_INPUT) ||
::IsDlgButtonChecked (hWnd,IDC_LED3_DIGITAL_INPUT) ||
::IsDlgButtonChecked (hWnd,IDC_LED4_DIGITAL_INPUT) )
::CheckDlgButton(hWnd,IDC_LED1_DIGITAL_INPUT,0);
::CheckDlgButton(hWnd,IDC_LED1_TURN_UNDER,0);
::CheckDlgButton(hWnd,IDC_LED2_POSITION,0);
::CheckDlgButton(hWnd,IDC_LED3_POSITION,0);
::CheckDlgButton(hWnd,IDC_LED4_POSITION,0);
}
break;
case IDC_LED1_TURN_UNDER:
if (::IsDlgButtonChecked (hWnd,IDC_LED1_TURN_UNDER) )
{
if (::IsDlgButtonChecked (hWnd,IDC_LED2_ZERO) ||
::IsDlgButtonChecked (hWnd,IDC_LED3_ZERO) ||
::IsDlgButtonChecked (hWnd,IDC_LED4_ZERO) )
::CheckDlgButton(hWnd,IDC_LED1_ZERO,0);
if (::IsDlgButtonChecked (hWnd,IDC_LED2_ANYSPEED) ||
::IsDlgButtonChecked (hWnd,IDC_LED3_ANYSPEED) ||
::IsDlgButtonChecked (hWnd,IDC_LED4_ANYSPEED) )
::CheckDlgButton(hWnd,IDC_LED1_ANYSPEED,0);
if (::IsDlgButtonChecked (hWnd,IDC_LED2_DIGITAL_INPUT) ||
::IsDlgButtonChecked (hWnd,IDC_LED3_DIGITAL_INPUT) ||
::IsDlgButtonChecked (hWnd,IDC_LED4_DIGITAL_INPUT) )
::CheckDlgButton(hWnd,IDC_LED1_DIGITAL_INPUT,0);
::CheckDlgButton(hWnd,IDC_LED1_POSITION,0);
::CheckDlgButton(hWnd,IDC_LED2_TURN_UNDER,0);
::CheckDlgButton(hWnd,IDC_LED3_TURN_UNDER,0);
::CheckDlgButton(hWnd,IDC_LED4_TURN_UNDER,0);
}
Понадобилось добавить ещё один чек бокс. Зашёл в обработчик - а там такое. И это только начало, всё не поместилось. Чтобы представить масштабы скажу, что чекбоксов 16..., я должен добавить ещё 4.
+1000
bool __fastcall TItsString::operator == (const char* sVal) const
{
bool Empty1 = ((FStringValue == NULL) || (FStringValue[0] == 0));
bool Empty2 = ((sVal == NULL) || (sVal[0] == 0));
if (Empty1 && Empty2) return true;
if (Empty1 || Empty2) return false;
int i,j,k;
for(i=0; FStringValue[i] && (GET_LOWER_CHAR(FStringValue[i]) == GET_LOWER_CHAR(sVal[i])); i++);
if ((FStringValue[i] == 0) && (sVal[i] == 0)) return true;
j=i; k=i;
if (sVal[k] == 0) for(; FStringValue[i] == 0x20; i++);
if (FStringValue[k] == 0) for(; sVal[j] == 0x20; j++);
if ((FStringValue[i] == 0) && (sVal[j] == 0)) return true;
return false;
}
+1020
#include <stdio.h>
#define _0000 0
#define _0001 int
#define _0010 a
#define _0011 16
#define _0100 b
#define _0101 c
#define _0110 printf
#define _0111 "%d"
#define _1000 d
#define _1001 (
#define _1010 )
#define _1011 =
int main()
{
_0001 _1000 _1011 _0011;
_0001 _0010 _1011 _1000;
_0001 _0100 _1011 _1001--_1000 _1010+++_1001++_1000 _1010;
_0001 _0101 _1011 _0010>_0100?_0010:_0100>_0010?_0100:_0000;
_0110 _1001 _0111, _0101 _1010;
getchar();
}
Показал первому курсу define, на дом задал простейшую задачу. На следующий день увидел это.
+993
class A
{
public:
int a;
int getA(){return a;}
};
class B: public A
{
public:
int b;
int getB(){return b;}
};
class C: public A
{
public:
int c;
int getC(){return c;}
};
class D: public C, public B
{
public:
D(): d(0) {}
int d;
int getD(){return d;}
};
int main()
{
D d;
std::cout << d.getD();
}
Знакомый программист утверждает, что этот пример является примером "возможности ромбовидного наследования" в С++, совсем забывая, что этот замечательный язык генерирует ромбовидное наследование только при наследовании виртуальном, а пример не раскрывает проблему и наполовину.
+161
AnsiString DateArray = "";
int DaysBetween = 0;
DaysBetween = DateTimePicker2->Date - DateTimePicker1->Date;
for (int i = 0; i <= DaysBetween; i++ )
{
if (i != 0)
DateArray = DateArray + " OR ";
DateArray = DateArray + " date_made = '"+DateToStr(DateTimePicker1->Date + i)+"'";
}
Очевидно, подготавливаем запрос для отбора по диапазону дат :)