www.pudn.com > 200410111032011273DESMD5ZLIB算法源代码.rar > ArithDLL.cpp
// ArithDLL.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
#include "ArithDLL.h"
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
};
/*ARITHDLL_API int WINAPI CheckExeFile(char *szFileName, char *szMutex)
{
if (szMutex != NULL)
{
HANDLE m_hMutex;
m_hMutex=CreateMutex(NULL,FALSE,szMutex);
if (m_hMutex)
{
if (GetLastError()==ERROR_ALREADY_EXISTS)
{
CloseHandle(m_hMutex);
return -1;
}
}
else{ return -2;}
}
HANDLE hFile;
hFile=CreateFile(szFileName,
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (hFile == INVALID_HANDLE_VALUE)
return -3;
int iLen;
iLen = GetFileSize(hFile, NULL);
if (iLen<=0)
{
CloseHandle(hFile);
return -4;
}
char *strTemp=new char[iLen];
int iReadLen, iResult;
SetFilePointer(hFile, 0L, NULL, FILE_BEGIN);
iResult = ReadFile(hFile, strTemp, iLen, (unsigned long *)&iReadLen, NULL);
CloseHandle(hFile);
if (iResult==0 || iReadLen!=iLen)
{
delete strTemp;
return -5;
}
char strGene[]="_LSSOFTencrypt_1999b1210_zhangxianzhu_1968dd0316_\
Fateher_19321208_Mother_19390507_Wife_19680707_lssoft@public.szptt.net.cn\
_中国人的操作系统_longsi_130476dc_22c9f00f";
for(int i=0; i 0 && dwCRC!=0)
{
if (::MessageBox(NULL, "程序已被病毒或其他程序修改,是否继续执行?",
"LongSi Message",
MB_YESNO|MB_ICONWARNING|MB_DEFBUTTON2|MB_TOPMOST)!=IDYES)
return -6;
}
return 0;
}
*/
//////////////////////////////////////////////////////////////////////
//
//将网际顺序的unsigned long, 变成Intel顺序的unsigned long值
//
//
//////////////////////////////////////////////////////////////////////
ARITHDLL_API long WINAPI ChangeLong(long lValue)
{
unsigned long ulTemp = (unsigned long)lValue;
ulTemp = ((ulTemp&0xF000) >> 24) +
((ulTemp&0x0F00) >> 8) +
((ulTemp&0x00F0) << 8) +
((ulTemp&0x000F) << 24);
return (long)ulTemp;
}
//////////////////////////////////////////////////////////////////////
//
//将网际顺序的WORD, 变成Intel顺序的WORD值
//
//
//////////////////////////////////////////////////////////////////////
ARITHDLL_API short WINAPI ChangeShort(short shValue)
{
unsigned short ushTemp=(unsigned short)shValue;
ushTemp = ((ushTemp&0xF0) >> 8) +
((ushTemp&0x0F) << 8);
return (short)ushTemp;
}