⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 type.cpp

📁 一个简单的DLL程序
💻 CPP
字号:
#include <windows.h>
#include <string.h>
#include <stdio.h> 


/*flag	0:正序,1:倒序*/
int WINAPI longtochar(long l, char *a, int flag)
{
	char tmp[4];
	char temp[4];

	memcpy(a, &l, 4);
	if (flag)
	{
		memcpy(tmp, &l, 4);
		temp[0] = tmp[3];
		temp[1] = tmp[2];
		temp[2] = tmp[1];
		temp[3] = tmp[0];
		memcpy(a, temp, 4);
	}
	return 0;
}

long WINAPI chartolong(char *a, int flag)
{
	char tmp[4];
	char temp[4];
	long l;

	memcpy(&l, a, 4);
	if (flag)
	{
		memcpy(tmp, a, 4);
		temp[0] = tmp[3];
		temp[1] = tmp[2];
		temp[2] = tmp[1];
		temp[3] = tmp[0];
		memcpy(&l, temp, 4);
	}
	return l;
} 

int WINAPI inttochar(short int i, char *a, int flag)
{
	char tmp[2];
	char temp[2];
	
	memcpy(a, &i, 2);
	if (flag)
	{
		memcpy(tmp, &i, 2);
		temp[0] = tmp[1];
		temp[1] = tmp[0];
		memcpy(a, temp, 2);
	}
	return 0;
}

short int WINAPI chartoint(char *a, int flag)
{
	char tmp[2];
	char temp[2];
	short int i;
	
	memcpy(&i, a, 2);
	if (flag)
	{
		memcpy(tmp, a, 2);
		temp[0] = tmp[1];
		temp[1] = tmp[0];
		memcpy(&i, temp, 2);
	}
	return i;
}

int WINAPI compress(char* a, char *b, int len)//len个字节的a压缩成len/2个字节的b
{
	char i;
	
	for(i = 0; i < len; i++)
	{
		b[i / 2] = (a[i] & 0x0f) << 4;
		i ++;
		b[i / 2] += a[i] & 0x0f;
	}
	return 0;
}

int WINAPI decompress(char* a, char *b, int len)//len个字节的a解压缩成len*2个字节的b
{
	char i;
	
	for(i = 0; i < len * 2; i++)
	{
		b[i] = ((a[i / 2] & 0xf0) >> 4) + '0';
		i++;
		b[i] = (a[i / 2] & 0x0f) + '0';
	}
	return 0;
}

//a保留alen个字节;从b开始接blen个字节。例如:a ="12345678";b = "abcdefgh" alen = 3; blen = 5;结果最后a = "123abcde"
int WINAPI stringcat(char* a, char *b, int alen, int blen)
{
	char tmp[100];

	/*从a中取alen个字节*/
	strncpy(tmp, a, alen);
	/*从b中取blen个字节放入a中*/
	strncpy(tmp+alen, b, blen);
	/*全部附值给a*/
	memcpy(a, tmp, alen+blen);
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -