阅读背景:

C++Builder XEn使用BCB6的DLL(以BCB6中流行的DES加密控件WCDESComp通过DLL供XE使用的方法为例)

来源:互联网 

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



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: