LoadRunner简单应用之:C++ DLL的实现及调用

1、性能测试中使用DLL处理客户端本地进行的复杂计算

在性能测试过程中,经常遇到这种情况:客户端与服务端交互的数据需要经过多重二次计算,如加密加压,解密解压等,以及其他一些需要在客户端本地进行的计算。

在使用lr进行性能测试过程中,当然也可以在脚本中编写处理过程,但总的来说不容易处理。

本文对以前的经验作了总结,方便参考。

 

2、编程实现

本文演示了一个简单的c++ dll程序的结构,可以不关注如何调用com的过程。如果想知道调用com的过程,可参考http://blog.csdn.net/ceo158/article/details/14003969,该文介绍了如何在c++中使用com。

一个最简单的dll程序,其实可以只包括一个头文件和一个源码文件。

下面的例子导出两个两个函数:

int EnStr(char* toEn,char encryptedStr[]);作用是加密字符串toEn,并将加密后的值encryptedStr返回。注意在函数实现里使用了strcpy(encryptedStr,(LPSTR)(LPCTSTR)strRET);,而非encryptedStr = (LPSTR)(LPCTSTR)strRET;,因为strRET的生命周期只是存在于该函数内,一旦返回,其值将被释放,所以外面调用该dll的客户程序得不到任何内容(空)。

int DeStr(char* toDe,char decryptedStr[]);的作用是解密,基本实现同上。

另外需要注意的是引入了两个新类型BSTR和_bstr_t,这都是与com通信相关的。他们可以和CString和char*转换。

1)头文件head.h

#include "stdafx.h"
#include "afx.h"
#include "windows.h"
#include "afxdisp.h"

#import "youcompath\EncryptCompressCS.tlb"
using namespace NAMESPACE; 


//导出函数
extern "C"
{
	//aes加密
	_declspec(dllexport) int EnStr(char* toEn,char encryptedStr[]); //输入为toEn,输出为e
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值