1)BCB6的DLL部分:
/*
C++Builder XEn(如XE2等)使用BCB6的DLL,主要是C++Builder XEn的AnsiString和BCB6的AnsiString及Application等不兼容,因此要使用char或wchar_t之流才可以正常传递数据,此处说明传值方法并借此说明BCB6中流行的DES加密控件WCDESComp通过DLL供XE使用的方法
*/
#include "WCDESComp.hpp"
extern "C" __declspec(dllexport)
__stdcall void EncryStrHex( // 字符串加密
char * T_QZHB // 待加密的字符串
,
char * T_YMOZ // 密钥
,
char * T_BLZA // 存放结果
){
AnsiString T_QOMG=static_cast<AnsiString>(T_QZHB); // 待加密的字符串
AnsiString T_HWMJ=static_cast<AnsiString>(T_YMOZ); // 密钥
AnsiString T_PRJO=""; // 结果
TWCDESComp * K_VHQZ=new TWCDESComp(NULL);
T_PRJO=K_VHQZ->EncryStrHex(
T_QOMG // 待加密的字符串
,
T_HWMJ // 密钥
);//加密
strcpy(T_BLZA,T_PRJO.c_str());
delete K_VHQZ;
//return true;
}
extern "C" __declspec(dllexport)
__stdcall void DecryStrHex( // 字符串解密
char * T_QZHB // 待解密的字符串
,
char * T_YMOZ // 密钥
,
char * T_BLZA // 存放结果
){
AnsiString T_QOMG=static_cast<AnsiString>(T_QZHB); // 待解密的字符串
AnsiString T_HWMJ=static_cast<AnsiString>(T_YMOZ); // 密钥
AnsiString T_PRJO=""; // 结果
TWCDESComp * K_VHQZ=new TWCDESComp(NULL);
T_PRJO=K_VHQZ->DecryStrHex(
T_QOMG // 待解密的字符串
,
T_HWMJ // 密钥
);//解密
strcpy(T_BLZA,T_PRJO.c_str());
delete K_VHQZ;
//return true;
}
/*
C++Builder XEn(如XE2等)使用B