标题: Loadrunner中使用C#的dll问题 [打印本页] 作者: xinyuzxx 时间: 2015-11-30 14:16 标题: Loadrunner中使用C#的dll问题 Loadrunner中不能直接使用C#的dll,所以我先用C++封装了一个dll来调用C#的dll,但是将C++的这个dll用lr_load_dll加载到Loadrunner中后,运行到调用函数那一步时总是报错“mmdrv has encountered a problem and needs to close.”我的C#代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CSDll
{
public class Operater
{
public int TwoNum(char oper, int a, int b)
{
switch (oper)
{
case '+':
return a + b;
case '-':
return a - b;
case '*':
return a * b;
case '/':
return a / b;
}
return 0;
}
}
}
C++代码如下:
头文件:
#ifdef CPDLL_EXPORTS
#define CPDLL_API __declspec(dllexport)
#else
#define CPDLL_API __declspec(dllimport)
#endif
// 此类是从 CPDll.dll 导出的
class CPDLL_API CCPDll {
public:
CCPDll(void);
// TODO: 在此添加您的方法。
};
extern CPDLL_API int nCPDll;
CPDLL_API int fnCPDll(void);
extern "C" CPDLL_API int CP2Num(char,int,int);
CPP文件:
#include "stdafx.h"
#include "CPDll.h"
#using "CSDll.dll"
using namespace CSDll;
// 这是导出变量的一个示例
CPDLL_API int nCPDll=0;
// 这是导出函数的一个示例。
CPDLL_API int fnCPDll(void)
{
return 42;
}
CPDLL_API int CP2Num(char oper,int a,int b)
{
Operater ^opera=gcnew Operater();
int result=opera->TwoNum(oper,a,b);
return result;
}