VC动态库的接口如下:
#ifdef IMSENCRYPT_EXPORTS #define IMSENCRYPT_API __declspec(dllexport) #else #pragma comment(lib, "IMSEncrypt.lib") #define IMSENCRYPT_API __declspec(dllimport) #endif IMSENCRYPT_API int __stdcall Encrypt(char * returnval, const char * src, int src_len = 0); IMSENCRYPT_API int __stdcall Decrypt(char * returnval, const char * src, int src_len = 0); IMSENCRYPT_API void __stdcall STest(const char * testval);
函数参数如下:
Encrypt(char * returnval, const char * src, int src_len = 0)
returnval: 返回的结果字符串
src: 待处理的源字符串
src_len: 源字符串长
Decrypt(char * returnval, const char * src, int src_len = 0)
returnval: 返回的结果字符串
src: 待处理的源字符串
src_len : 源字符串长
VB调用时函数声明如下:
'Encrypt使用说明: ' 这里传参直接以ByVal方式传参,但需注意的接受返回值的参数必须先初始化足够大的空间,例如: ' dest = String(255, Chr(0)) ' 参数说明: ' ByVal dest As String:接收返回的结果 ' ByVal src As String:待加密字符串 ' ByVal length As Long:源字符串长度,如果设置为0,则由DLL内部计算 ' 返回值(Integer):返回的结果字符串长度 Private Declare Function Encrypt Lib "IMSEncrypt" (ByVal dest As String, ByVal src As String, ByVal length As Long) As Integer 'Decrypt使用说明: ' 这里传参直接以ByVal方式传参,但需注意的接受返回值的参数必须先初始化足够大的空间,例如: ' dest = String(255, Chr(0)) ' 参数说明: ' ByVal dest As String:接收返回的结果(明文) ' ByVal cipher As String:待处理字符串(密文) ' ByVal length As Long:源字符串长度,如果设置为0,则由DLL内部计算 ' 返回值(Integer):返回的结果字符串长度 Private Declare Function Decrypt Lib "IMSEncrypt" (ByVal dest As String, ByVal cipher As String, ByVal length As Long) As Integer
这里要注意的点是:
1、接受返回值的参数以ByVal方式传递即可
2、接受返回值的变量必须先初始化,并足够容纳返回值