创建一个动态库
动态连接库支持所有windows下的编程。 VB、Dephi、C#、C/C++等。我们这里用VC++进行演示。
下面通过VC++ 6.0中文版来创建一个动态函数。
打开VC++ 6.0,新建一个工程,这里先择工程类型为“Win32 Dynamic-link Library”,起一个工程名称,并选择好存方位置。
点击“确定”按钮,会询问你希望创建什么类型的DLL?
我们选择第三项“一个可以导出某些符号的DLL工程(D)”
点击确定,系统会给我们创建两个文件MyDLL.h和MyDLL.cpp
分别对两个文件进行编写代码
MyDLL.h
extern
"
C
" MYDLL_API
int lr_demo(
int,
int);
因为我们的loadrunner 的VuGen是一个C语言的解释器与编译器,只支持纯的C语言,不支持C++ ,所以,我们要在前面加“extern "C"”将函数转义成纯的C语言。
MyDLL.cpp
int lr_demo(
int x ,
int
y){
int sum; sum= x + y; return sum;
}
MYDLL_API
int sum; sum= x + y; return sum;
}
选择“工具”菜单---组建[MyDLL.dll] 或直接按F7程序进行编译。
编译完成后,提示没有错误与警告,说明我们成功了!
在loadrunnre中调用动态库
下面打开我们的loadrunner 的VuGen ,写入下面代码。
vuser_init(){
int ret;
ret=lr_load_dll( " C:\\Users\\Administrator\\Desktop\\loadrunner\\MyDLL\\Debug\\MyDLL.dll "); // 调用我们本地的函数文件,因为单斜杠(\)会被C语言转义,所以要用两个斜杠(\\)来表示路径。
if(ret!= 0){
return - 1 ;
}
return 0 ;
}
int ret;
ret=lr_load_dll( " C:\\Users\\Administrator\\Desktop\\loadrunner\\MyDLL\\Debug\\MyDLL.dll "); // 调用我们本地的函数文件,因为单斜杠(\)会被C语言转义,所以要用两个斜杠(\\)来表示路径。
if(ret!= 0){
return - 1 ;
}
return 0 ;
}
Action部分
Action(){
int sum;
sum=lr_demo( 1, 2); // lr_demo 与我们vc++中的函数名一致
lr_output_message( " this sume is :%d\n ",sum); // 输出运算结果
return 0 ;
}
int sum;
sum=lr_demo( 1, 2); // lr_demo 与我们vc++中的函数名一致
lr_output_message( " this sume is :%d\n ",sum); // 输出运算结果
return 0 ;
}
运行结果:
Starting iteration 1
.Starting action Action.Action.c(
8):
this sume
is :
3
Ending action Action.Ending iteration
1.