无事,将前段时间写的C++版本的Hash算法库,改写成C语言版本,拿着函数指针大刀,一阵狂野的修改,生成的Dll比用C++的少2K,12K,然后又测试了tcc编译成dll,让人失望的是tcc生成的dll是15K, gcc生成的还要大,大概32K左右。。
编译备注:编译时需要定义HASH_EXPORT_DLL宏。
测试程序:
#include <stdio.h>
#include <string.h>
#include "hash.h"
int main()
{
const char* str = "hellovfp";
const char* types[] = {"crc32", "sha1", "md5", "adler32", "sha256"};
Hash hash;
IHash ih;
int i;
for(i = 0; i < 5; ++i)
{
ih = hash_create(&hash, i);
ih.update(&hash, str, strlen(str));
ih.final(&hash);
hash_release(&hash);
printf("%s:%s\n", types[i], hash.hex_str);
}
return 0;
}
运行结果和软件对比图:

好了,终于又搞定了,下一步,可以开始写国际版的Luo奔监视器了,嘿嘿。
编译备注:编译时需要定义HASH_EXPORT_DLL宏。
测试程序:
#include <stdio.h>
#include <string.h>
#include "hash.h"
int main()
{
const char* str = "hellovfp";
const char* types[] = {"crc32", "sha1", "md5", "adler32", "sha256"};
Hash hash;
IHash ih;
int i;
for(i = 0; i < 5; ++i)
{
ih = hash_create(&hash, i);
ih.update(&hash, str, strlen(str));
ih.final(&hash);
hash_release(&hash);
printf("%s:%s\n", types[i], hash.hex_str);
}
return 0;
}
运行结果和软件对比图:

好了,终于又搞定了,下一步,可以开始写国际版的Luo奔监视器了,嘿嘿。