VS2008开发之模板化DLL

序言:

使用VS2008开发DLL库模块化!

正文:

1、Jimmy_Math.h

#pragma once

class Jimmy_Math{
public:
	Jimmy_Math();
	~Jimmy_Math();

	int Add(int n1, int n2);
	int Sub(int n1, int n2);
	int Multiply(int n1, int n2);
	int Divide(int n1, int n2);
};

2、Jimmy_Math.cpp

#include "Jimmy_Math.h"

Jimmy_Math::Jimmy_Math()
{

}

Jimmy_Math::~Jimmy_Math()
{

}

int Jimmy_Math::Add(int n1, int n2)
{
	return n1 + n2;
}

int Jimmy_Math::Sub(int n1, int n2)
{
	return n1 - n2;
}

int Jimmy_Math::Multiply(int n1, int n2)
{
	return n1 * n2;
}

int Jimmy_Math::Divide(int n1, int n2)
{
	if (n2)
	{
		return n1 / n2;
	}
	else
	{
		return -1;
	}
}

3、TW_MPSSE.h

#pragma once

#define TW_MPSSE_DLL_EXPORT __declspec(dllexport)

TW_MPSSE_DLL_EXPORT
int ex_add(int n1, int n2);

TW_MPSSE_DLL_EXPORT
int ex_sub(int n1, int n2);

TW_MPSSE_DLL_EXPORT
int ex_multiply(int n1, int n2);

4、TW_MPSSE.cpp

#include "Jimmy_Math.h"

#include "TW_MPSSE.h"

static Jimmy_Math *p_mm = NULL;

BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
	switch (ul_reason_for_call)
	{
	case DLL_PROCESS_ATTACH:
		if (p_mm == NULL)
		{
			p_mm = new Jimmy_Math();
		}
		break;
	case DLL_THREAD_ATTACH:
		break;
	case DLL_THREAD_DETACH:
		break;
	case DLL_PROCESS_DETACH:
		if (p_mm != NULL)
		{
			delete p_mm;
		}
		break;
	}
	return TRUE;
}

//
int ex_add(int n1, int n2)
{
	return p_mm->Add(n1, n2);
}

int ex_sub(int n1, int n2)
{
	return p_mm->Sub(n1, n2);
}

int ex_multiply(int n1, int n2)
{
	return p_mm->Multiply(n1, n2);
}

备注:

---- The End.

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值