- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
#include "stdafx.h"
#include "windows.h"
#Define igra
int main1(int argc, CHAR* argv[])
{
...
}
int main2(int argc, CHAR* argv[])
{
...
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+183
#include "stdafx.h"
#include "windows.h"
#Define igra
int main1(int argc, CHAR* argv[])
{
...
}
int main2(int argc, CHAR* argv[])
{
...
}
http://www.gamedev.ru/code/forum/?id=19939+164
boolean b = true
...
if ((b == true) && (b != false))
{
...
}
...
+164
inline ~Scene() {
while( boxList.size() > 0 ) {
boxList.erase( boxList.begin() );
}
while( sphereList.size() > 0 ) {
sphereList.erase( sphereList.begin() );
}
while( lightList.size() > 0 ) {
lightList.erase( lightList.begin() );
}
}
http://www.gamedev.ru/code/forum/?id=136478&page=6#m82
+144
А я люблю обмазываться не свежим С++ и дрочить.
Каждый день я программирую на С++.
На две полных проги целый день уходит.
Зато, когда после тяжёлого дня я прихожу домой,
иду на геймдев...ммм и сру в каменты про С++.
И дрочу, представляя, что меня поглотил единый организм С++.
Мне вообще кажется, что С++, умеет думать,
у него есть своя семья, город, чувства, не удаляйте его с харда,
лучше приютите у себя, говорите с ним, ласкайте С++....
А вчера, мне преснился чудный сон, как будто я зашел на геймдев,
и он превратился в сайт про С++, странички, каменты, все из С++, даже небо,
даже Аллах!
http://www.gamedev.ru/flame/forum/?id=152618#m9
+171
static void tm_to_systemtime(const tm* pTime, LPSYSTEMTIME pSysTime )
{
time_t timeT = mktime((tm*)pTime);
FILETIME fTime = {0},lTime = {0};
LONGLONG ll = Int32x32To64(timeT, 10000000) + 116444736000000000;
fTime.dwLowDateTime = (DWORD) ll;
fTime.dwHighDateTime = ll >>32;
FileTimeToLocalFileTime(&fTime,&lTime);
FileTimeToSystemTime(&lTime,pSysTime);
}
static std::string GetDateTimeString(const tm& activ)
{
SYSTEMTIME sysTime = {0};
tm_to_systemtime(&activ,&sysTime);
char str[256];
//format to <YYYYMMDDHHMMSS>
sprintf_s(str,sizeof(str),"%04d%02d%02d%02d%02d%02d",sysTime.wYear,sysTime.wMonth,sysTime.wDay,sysTime.wHour,sysTime.wMinute,sysTime.wSecond);
return std::string(str);
}
далеко не самый скучный способ отформатировать ::tm в виде YYYYMMDDHHmmss
+162
for (DWORD CurItem=0; CurItem<dwNumItems; CurItem++)
{
switch (CurItem)
{
case 0:
description.LoadString(IDS_OPC_PROP_CDT);
pPropertyIDs[CurItem] = OPC_PROP_CDT;
pDescriptions[CurItem] = OpcStrDup(description);
pDataTypes[CurItem] = VT_I2;
break;
case 1:
description.LoadString(IDS_OPC_PROP_VALUE);
pPropertyIDs[CurItem] = OPC_PROP_VALUE;
pDescriptions[CurItem] = OpcStrDup(description);
pDataTypes[CurItem] = pDATag->m_value.vt;
break;
case 2:
description.LoadString(IDS_OPC_PROP_QUALITY); //Item Quality
pPropertyIDs[CurItem] = OPC_PROP_QUALITY;
pDescriptions[CurItem] = OpcStrDup(description);
pDataTypes[CurItem] = VT_I2;
break;
case 3:
description.LoadString(IDS_OPC_PROP_TIME); //Item Timestamp
pPropertyIDs[CurItem] = OPC_PROP_TIME;
pDescriptions[CurItem] = OpcStrDup(description);
pDataTypes[CurItem] = VT_DATE;
break;
case 4:
description.LoadString(IDS_OPC_PROP_RIGHTS); //Item Access Rights
pPropertyIDs[CurItem] = OPC_PROP_RIGHTS;
pDescriptions[CurItem] = OpcStrDup (description);
pDataTypes[CurItem] = VT_I4;
break;
case 5:
description.LoadString(IDS_OPC_PROP_DESC); //Item Description
pPropertyIDs[CurItem] = OPC_PROP_DESC;
pDescriptions[CurItem] = OpcStrDup(description);
pDataTypes[CurItem] = VT_BSTR;
break;
case 6:
description.LoadString(IDS_OPC_PROP_SCANRATE); //Item ScanRate
pPropertyIDs[CurItem] = OPC_PROP_SCANRATE;
pDescriptions[CurItem] = OpcStrDup(description);
pDataTypes[CurItem] = VT_R4;
break;
/////////////////////////////////////////////////////////////////////////
}
}
+143
void crash()
{
(( void(*)() )0)();
}
Crash ;]
+149
Ваще без понта языкю
+162
#ifdef _WIN32
#define BEGIN_ASM
#define END_ASM
#define _DB(a) __asm _emit a
#define _STR(a) a
#else
#define BEGIN_ASM asm (
#define END_ASM );
#define _DB(a) ".byte "#a";"
#define _STR(a) a" \n\t"
#endif
#define PARAMETERS_ESP_VOID_VOID_VOID BEGIN_ASM _STR(_DB(0x8B) _DB(0x44) _DB(0x24) _DB(0x04)) _STR(_DB(0x8B) _DB(0x54) _DB(0x24) _DB(0x08)) \
_STR(_DB(0x8B) _DB(0x4C) _DB(0x24) _DB(0x0C)) END_ASM
#define SAVE_3_PARAMETERS BEGIN_ASM _STR(_DB(0x89) _DB(0x44) _DB(0x24) _DB(0xE4)) _STR(_DB(0x89) _DB(0x54) _DB(0x24) _DB(0xEC)) \
_STR(_DB(0x89) _DB(0x4C) _DB(0x24) _DB(0xE8)) END_ASM
#define LOAD_3_PARAMETERS BEGIN_ASM _STR(_DB(0x8B) _DB(0x44) _DB(0x24) _DB(0xE4)) _STR(_DB(0x8B) _DB(0x54) _DB(0x24) _DB(0xEC)) \
_STR(_DB(0x8B) _DB(0x4C) _DB(0x24) _DB(0xE8)) END_ASM
int rdtc()
{
_asm RDTSC
}
#pragma optimize( "gtp", on )
#define VECTORP2DADDFPU \
BEGIN_ASM \
_STR(_DB(0xD9) _DB(0x00)) \
_STR(_DB(0xD8) _DB(0x02)) \
_STR(_DB(0xD9) _DB(0x19)) \
_STR(_DB(0xD9) _DB(0x40) _DB(0x04)) \
_STR(_DB(0xD8) _DB(0x42) _DB(0x04)) \
_STR(_DB(0xD9) _DB(0x59) _DB(0x04)) \
END_ASM
void __stdcall __VectorP2DAddFPU() {
VECTORP2DADDFPU;
}
// для даной функции компилятор сам зделает так чтобы использовались другие регистры процессора в место eax edx ecx и сохранения не понадобится
#define Vector2DAdd(x,y,z) _asm lea eax,x _asm lea edx,y _asm lea ecx,z _asm call __VectorP2DAddFPU;
void __stdcall _VectorP2DAddFPU(void *,void *,void *) {
// сохранение в данном случае вызывается в ручную так как сам компилятор этого не зделает что приведет к не предвиденниму результату или к подению
SAVE_3_PARAMETERS;
PARAMETERS_ESP_VOID_VOID_VOID;
VECTORP2DADDFPU;
LOAD_3_PARAMETERS;
}
http://www.gamedev.ru/code/forum/?id=152492#m3+158
std::ostringstream str;
str << "Русский текст" << std::endl;
Print(str.c_str());
//Оттуда же:
void ConsoleCout(const char* _text)
{
char* buffer=0;
unsigned int bufferSize=0;
if(!_text) return;
while(_text[bufferSize]) bufferSize++;
buffer=new (std::nothrow) char[bufferSize+1];
if(!buffer) return;
buffer[bufferSize]=0;
if(!CharToOemA(_text,buffer))
{
delete[] buffer;
return;
}
std::cout<<buffer;
delete[] buffer;
}
[code]http://www.gamedev.ru/code/forum/?id=152499[\code]