- 1
- 2
float factor = ((float)sizeof(char) / sizeof(wchar_t));
fileSize = (long)((float)fileSize * factor);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+57
float factor = ((float)sizeof(char) / sizeof(wchar_t));
fileSize = (long)((float)fileSize * factor);
вот так выглядит деление на sizeof(wchar_t) :)
+53
int CALLBACK ZDll::Compare(ZDll* p, ZDll* q, LPARAM lParamSort)
{
ULONG_PTR a, b;
int s = GET_Y_LPARAM(lParamSort) ? -1 : +1;
switch (GET_X_LPARAM(lParamSort))
{
default: __assume(false);
case 0:
a = p->_index, b = q->_index;
break;
case 1:
a = (ULONG_PTR)p->_BaseOfDll, b = (ULONG_PTR)q->_BaseOfDll;
break;
case 2:
a = p->_SizeOfImage, b = q->_SizeOfImage;
break;
case 3:
PCWSTR pa = p->_ImageName, pb = q->_ImageName;
if (!pa) return -s;
if (!pb) return +s;
return _wcsicmp(pa, pb)*s;
}
if (a < b) return -s;
if (a > b) return +s;
return 0;
}
INT_PTR ZModulesDlg::DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_NOTIFY:
if (((LPNMHDR)lParam)->idFrom == IDC_LIST1)
{
LVITEM lvi;
switch (((LPNMHDR)lParam)->code)
{
case LVN_COLUMNCLICK:
if ((DWORD)(lvi.iSubItem = ((LPNMLISTVIEW)lParam)->iSubItem) < 4)
{
ListView_SortItems(((LPNMHDR)lParam)->hwndFrom, ZDll::Compare,
MAKELPARAM(lvi.iSubItem, _bittestandcomplement(&_SortOrder, lvi.iSubItem)));
}
break;
case LVN_GETINFOTIP:
lvi.iItem = ((LPNMLVGETINFOTIP)lParam)->iItem;
lvi.mask = LVIF_PARAM;
if (ListView_GetItem(((LPNMHDR)lParam)->hwndFrom, &lvi))
{
if (PWSTR ImagePath = ((ZDll*)lvi.lParam)->_ImagePath)
{
if (DWORD n = ((LPNMLVGETINFOTIP)lParam)->cchTextMax)
{
WCHAR *pszText = ((LPNMLVGETINFOTIP)lParam)->pszText, c;
do
{
*pszText++ = c = *ImagePath++;
} while (c && --n);
if (c)
{
pszText[-1] = 0;
}
}
}
}
break;
}
}
break;
жесть
+49
void ZModulesDlg::OnDestroy(HWND hwnd)
{
LVITEM lvi = { LVIF_PARAM };
if (lvi.iItem = ListView_GetItemCount(hwnd))
{
do
{
lvi.iItem--;
if (ListView_GetItem(hwnd, &lvi))
{
((ZDll*)lvi.lParam)->Release();
}
} while (lvi.iItem);
}
}
+52
template<typename T> Light *create_instance(args ¶meters) { return new T(parameters); }
static map<string, Light* (*)(args &)> light_factory;
template<typename T> GeometricPrimitive * create_instance(args ¶meters) { return new T(parameters); }
static map<string, GeometricPrimitive* (*)(args &)> geometry_factory;
Откопал в архиве студенческих времен. Ray Tracing. abstract factory по именам.
+53
const VS_FIXEDFILEINFO* GetFileVersion(PCWSTR name)
{
HMODULE hmod = GetModuleHandle(name);
static LPCWSTR a[3] = { RT_VERSION, MAKEINTRESOURCE(1) };
PIMAGE_RESOURCE_DATA_ENTRY pirde;
PVOID pv;
DWORD size;
return !hmod ||
0 > LdrFindResource_U(hmod, a, 3, &pirde) ||
0 > LdrAccessResource(hmod, pirde, &pv, &size) ||
size < sizeof(VS_FIXEDFILEINFO)
? 0 : (VS_FIXEDFILEINFO*)findDWORD((size - sizeof(VS_FIXEDFILEINFO))/sizeof(DWORD) + 1, (PDWORD)pv, 0xfeef04bd);
}
+53
int lenNameTrack = byteArrAudioFile->size() - 128 + 3,
lenAutorTrack = byteArrAudioFile->size() - 128 + 3 + 30,
lenAlbumTrack = byteArrAudioFile->size() - 128 + 3 + 30 + 30,
lenYearTrack = byteArrAudioFile->size() - 128 + 3 + 30 + 30 + 30,
lenCommentTrack = byteArrAudioFile->size() - 128 + 3 + 30 + 30 + 30 + 4,
lenFlagNumberTrack = byteArrAudioFile->size() - 128 + 3 + 30 + 30 + 30 + 4 + 28,
lenNumberTrack = byteArrAudioFile->size() - 128 + 3 + 30 + 30 + 30 + 4 + 28 + 1,
lenIdGenreTrack = byteArrAudioFile->size() - 128 + 3 + 30 + 30 + 30 + 4 + 28 + 1 + 1;
for(int i = byteArrAudioFile->size() - 128+3; i <= byteArrAudioFile->size(); i++)
{
if(i == lenAutorTrack) //Названние трэка
for(int j = lenNameTrack, k = 0; j < lenAutorTrack; ++j)
{
if( (int) byteArrAudioFile->at(j) == 0)
break;
if( ((int) byteArrAudioFile->at(j)) < 0 )
ID3v1.title.append( toUnicod( (int) byteArrAudioFile->at(j) ) );
else ID3v1.title.append( byteArrAudioFile->at(j) );
}
if(i == lenAlbumTrack) //Исполнитель
for(int j = lenAutorTrack; j < lenAlbumTrack; ++j)
{
if( (int) byteArrAudioFile->at(j) == 0)
break;
if( ((int) byteArrAudioFile->at(j)) < 0 )
ID3v1.autor.append( toUnicod( (int) byteArrAudioFile->at(j) ) );
else ID3v1.autor.append( byteArrAudioFile->at(j) );
}
if(i == lenYearTrack) //Альбом
for(int j = lenAlbumTrack; j < lenYearTrack; ++j)
{
if( (int) byteArrAudioFile->at(j) == 0)
break;
if( ((int) byteArrAudioFile->at(j)) < 0 )
ID3v1.album.append( toUnicod( (int) byteArrAudioFile->at(j) ) );
else ID3v1.album.append( byteArrAudioFile->at(j) );
}
if(i == lenCommentTrack) //Год
for(int j = lenYearTrack; j < lenCommentTrack; ++j)
{
if( (int) byteArrAudioFile->at(j) == 0)
break;
ID3v1.year.append(byteArrAudioFile->at(j));
}
if(i == lenFlagNumberTrack) //Комментарий
for(int j = lenCommentTrack; j < lenFlagNumberTrack; ++j)
{
if( (int) byteArrAudioFile->at(j) == 0)
break;
if( ((int) byteArrAudioFile->at(j)) < 0 )
ID3v1.comment.append( toUnicod( (int) byteArrAudioFile->at(j) ) );
else ID3v1.comment.append( byteArrAudioFile->at(j) );
}
if(i == lenNumberTrack) //Если есть номер трэка то установлен нулевой байт
for(int j = lenFlagNumberTrack; j < lenNumberTrack; ++j)
{
if( (int) byteArrAudioFile->at(j) == 0)
break;
ID3v1.flagNumberTrack.append(byteArrAudioFile->at(j));
}
if(i == lenIdGenreTrack) //Номер трэка
for(int j = lenNumberTrack; j < lenIdGenreTrack; ++j)
{
if( (int) byteArrAudioFile->at(j) == 0)
break;
ID3v1.numberTrack.append(byteArrAudioFile->at(j));
}
if(i == lenIdGenreTrack + 1) //Индетификатор жанра
{
for(int j = lenIdGenreTrack; j <= lenIdGenreTrack; ++j)
{
if( (int) byteArrAudioFile->at(j) == 0)
break;
ID3v1.genre.append( QString::number( (int) byteArrAudioFile->at(j)));
}
ID3v1.genre.append(genreList(ID3v1.genre.toInt()));
}
}
Парсинг ID3v1 тегов
+53
void zxc()
{
DWORD i = 256, j, k, l, nTry, N = 0;
ULONG_PTR a = 0, b = 0, aa = 0, bb = 0;
_PTE* pte = PXE(256);
do
{
if (pte->Valid)
{
pte->Owner = 1;
__try
{
j = 0, nTry = 0;
_PTE* pte = PPE(i, 0);
do
{
if (pte->Valid)
{
pte->Owner = 1;
__try
{
k = 0, nTry = 0;
_PTE* pte = PDE(i, j, 0);
do
{
if (pte->Valid)
{
pte->Owner = 1;
if (pte->LargePage)
{
b = LA(i, j, k, 0);
if (!a)
{
a = b;
}
continue;
}
__try
{
l = 0, nTry = 0;
_PTE* pte = PTE(i, j, k, 0);
do
{
b = LA(i, j, k, l);
if (pte->Valid)
{
pte->Owner = 1;
if (!a)
{
a = b;
}
}
else
{
if (!pte->Prototype && pte->Protection && pte->Protection < MM_NOCACHE)
{
}
else if (a)
{
aa = a, bb = b, a = 0, N++;
}
}
} while (nTry = 0, ++pte, ++l < PTE_PER_PAGE);
}
__except(OnPteException(pte, nTry)){}
}
else if (a)
{
aa = a, bb = LA(i, j, k, 0), a = 0, N++;
}
} while (nTry = 0, ++pte, ++k < PDE_PER_PAGE);
}
__except(OnPteException(pte, nTry)){}
}
else if (a)
{
aa = a, bb = LA(i, j, 0, 0), a = 0, N++;
}
} while (nTry = 0, ++pte, ++j < PPE_PER_PAGE);
}
__except(OnPteException(pte, nTry)){}
}
else if (a)
{
aa = a, bb = LA(i, 0, 0, 0), a = 0, N++;
}
} while (++pte, ++i < PXE_PER_PAGE);
}
#define LA(i, j, k, l) (0xFFFF000000000000 + \
((ULONG_PTR)(i) << PXI_SHIFT) + \
((ULONG_PTR)(j) << PPI_SHIFT) + \
((ULONG_PTR)(k) << PDI_SHIFT) + \
((ULONG_PTR)(l) << PTI_SHIFT))
+51
DWORD getDirectoryIndex()
{
STATIC_OBJECT_ATTRIBUTES(oa, "\\");
HANDLE hFile;
DWORD ObjectTypeIndex = 0;
if (0 <= ZwOpenDirectoryObject(&hFile, DIRECTORY_QUERY, &oa))
{
NTSTATUS status;
PVOID buf = 0, stack = alloca(guz);
DWORD cb = 0, rcb = 0x10000;
do
{
if (cb < rcb) cb = RtlPointerToOffset(buf = alloca(rcb - cb), stack);
if (0 <= (status = ZwQuerySystemInformation(SystemExtendedHanfleInformation, buf, cb, &rcb)))
{
PSYSTEM_HANDLE_INFORMATION_EX pshti = (PSYSTEM_HANDLE_INFORMATION_EX)buf;
if (ULONG NumberOfHandles = (ULONG)pshti->NumberOfHandles)
{
PSYSTEM_HANDLE_TABLE_ENTRY_INFO_EX Handles = pshti->Handles;
ULONG_PTR UniqueProcessId = GetCurrentProcessId();
do
{
if (Handles->UniqueProcessId == UniqueProcessId && Handles->HandleValue == (ULONG_PTR)hFile)
{
ObjectTypeIndex = Handles->ObjectTypeIndex;
break;
}
} while (Handles++, --NumberOfHandles);
}
}
} while (STATUS_INFO_LENGTH_MISMATCH == status);
ZwClose(hFile);
}
return ObjectTypeIndex;
}
ZOBJECT_ALL_TYPES_INFORMATION()
{
_TypeInformation = 0, _NumberOfTypes = 0;
if (DWORD DirectoryTypeIndex = getDirectoryIndex())
{
PVOID stack = alloca(guz);
OBJECT_ALL_TYPES_INFORMATION* poati = 0;
DWORD cb = 0, rcb = 0x2000;
NTSTATUS status;
do
{
if (cb < rcb)
{
cb = RtlPointerToOffset(poati = (OBJECT_ALL_TYPES_INFORMATION*)alloca(rcb - cb), stack);
}
if (0 <= (status = ZwQueryObject(0, ObjectAllTypeInformation, poati, cb, &rcb)))
{
if (DWORD NumberOfTypes = poati->NumberOfTypes)
{
if (OBJECT_TYPE_INFORMATION* TypeInformation = (OBJECT_TYPE_INFORMATION*)LocalAlloc(0, rcb))
{
_NumberOfTypes = NumberOfTypes;
_TypeInformation = TypeInformation;
STATIC_UNICODE_STRING_(Directory);
OBJECT_TYPE_INFORMATION* pti = poati->TypeInformation;
PWSTR buf = (PWSTR)(TypeInformation + NumberOfTypes);
int Index = 0;
do
{
if (RtlEqualUnicodeString(&Directory, &pti->TypeName, TRUE))
{
_firstObjectTypeIndex = DirectoryTypeIndex - Index;
}
DWORD Length = pti->TypeName.Length, MaximumLength = pti->TypeName.MaximumLength;
memcpy(buf, pti->TypeName.Buffer, Length);
*TypeInformation = *pti;
TypeInformation++->TypeName.Buffer = buf;
buf = (PWSTR)RtlOffsetToPointer(buf, Length);
pti = (OBJECT_TYPE_INFORMATION*)
(((ULONG_PTR)pti + sizeof(OBJECT_TYPE_INFORMATION) + MaximumLength + sizeof(PVOID)-1) & ~(sizeof(PVOID)-1));
} while (Index++, --NumberOfTypes);
}
}
}
} while (status == STATUS_INFO_LENGTH_MISMATCH);
}
}
ObjectTypeIndex
+50
#include <iostream>
using namespace std;
void f(int i)
{
cout << "----" << endl;
void *array[] = { &&foo, &&bar, &&baz };
goto *array[i];
foo:
cout << "Foo" << endl;
bar:
cout << "Bar" << endl;
baz:
cout << "Baz" << endl;
}
int main() {
// your code goes here
f(0);
f(1);
f(2);
return 0;
}
http://ideone.com/63tRls
gcc extension
+53
const char *GetExternalFilesDir ()
{
assert (started);
static std::string s="";
if (s.length()==0)
{
LOGI("Try get external files dir");
jclass c; jmethodID m; jobject o;
c = env->FindClass ("android/app/NativeActivity");
m = env->GetMethodID (c, "getExternalFilesDir", "(Ljava/lang/String;)Ljava/io/File;");
o = env->CallObjectMethod (appState->activity->clazz, m, NULL);
c = env->GetObjectClass (o);
m = env->GetMethodID (c, "getAbsolutePath", "()Ljava/lang/String;");
o = env->CallObjectMethod (o, m);
jstring jo = (jstring)o;
const char *path = env->GetStringUTFChars(jo, NULL);
s=path;
env->ReleaseStringUTFChars(jo, path);
s+='/';
LOGI("Path for program's data files is %s", s.c_str());
}
return s.c_str();
}
Этот код был написан одним очень известным в очень узких кругах человеком. Будем надеяться, что он придет в обсуждение и прокомментирует его.