关于MFC中类的dll制作及调用
在vs2010新建项目中创建mfcdll,选择带静态链接MFC的规则;
首先是你创建的dll项目的头文件
#ifndef Algorm_H_
#define Algorm_H_
#ifdef Algorm_EXPORTS
#define Algorm_API extern"C" _declspec(dllexport)//dll
#else
#define Algorm_API extern"C"_declspec(dllimport)//user
#endif
#include "stdafx.h"//你需要的头文件
class _declspec(dllexport) Algorm
{
public:
Algorm();
~Algorm();
public:
void myAlgorm(float *pData, float *Pj, float *pa, int rows, int Num, int Level);
void myAction(float *oi, float si, float co, int rows, float *res);
//其他 int,float 数据定义是一样的
};
#endif
然后是你创建的dll项目的运行文件.cpp
#include "StdAfx.h"
#include"stdio.h"
#include"Algorm.h"//你需要的头文件
Algorm::Algorm()
{
}
Algorm::~Algorm()
{
}
_declspec(dllexport) void myAlgorm(float *pData, float *Pj, float *pa, int rows, int Num, int Level)
{
//函数实现主体
}
_declspec(dllexport) void myAction(float *oi, float si, float co, int rows, float *res)
{
//函数实现主体
}
调试时选择relase版本,平台的话与接下来要调用的一致就行
在别的程序中调用了,这里用的是静态链接
1.把生成的dll放在release或debug(你所需要的)下与生成的exe在一个目录里;
把头文件Algorm.h 和 Algorm.lib的路径在项目属性中添加。2.程序内为
#include "Algorm.h"
#pragma comment(lib, "Algorm.lib")
class _declspec(dllimport) Algorm;
Algorm algorm;//实例化
algorm.myAlgorm(float *pData, float *Pj, float *pa, int rows, int Num, int Level);//调用即可