有关DLL的编写代码,在VC里面新建一个Win32 Dynamic-Link Library类型的空项目,源码如下:
// DllProject.cpp : Defines the entry point for the DLL application.
//
#include <windows.h>
#define DLLEXPORT extern "C" _declspec(dllexport)
DLLEXPORT int add(int a, int b);
DLLEXPORT int sub(int a, int b);
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
...{
switch( ul_reason_for_call )
...{
case DLL_PROCESS_ATTACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
case DLL_PROCESS_DETACH:
break;
default:
break;
}
return TRUE;
}
int add(int a ,int b)
...{
return a+b;
}
int sub(int a ,int b)
...{
return a-b;
}
编译生成dll文件,然后在Loadrunner中调用,代码如下:
Action()
...{
lr_load_dll("C:\tmp\DllProject\Debug\DllProject.dll");
lr_output_message(" %d",add(5,6));
lr_output_message(" %d",sub(5,6));
return 0;
}
在globals.h中增加:
#ifdef unix
char *filename = "/tmp/logfile.txt";
#else
char *filename = "c:\\logfile.txt";
#endif
long file_stream;
file_open(char *file_name){
if ((file_stream = fopen(file_name, "w")) == NULL ) {
lr_error_message("Cannot open %s", file_name);
return -1;
}
}
file_close(char *file_name){
if (fclose(file_stream))
lr_error_message("Error closing file %s", filename);
return 0;
}
在vuser_init的头上增加:
file_open(filename);
在action中增加:
long t1;
time(&t1);
fprintf(file_stream, "%s,BMSSCMBN,MOBILENO\n",ctime(&t1));
在vuser_end的尾上增加:
file_close(filename);