mfc 调用动态链接库的几种方式

方法一:动态调用(仅需.dll)

动态调用是显示调用。例子:

bool m_bLoaded = false;//是否加载成功
	HMODULE m_hModule;
	bool LoadDll()//加载dll
	{
		CString strPath = _T("..//XX//YY.dll");//XX路径下的YY.dll
		m_hModule = LoadLibrary(strPath);
		if (!m_hModule)
		{
			AfxMessageBox(_T("dll加载动态链接库失败"));
			return false;
		}
		m_bLoaded = true;//加载动态链接库
		return true;
	}

	void  FreeDll()//卸载dll
	{
		if (m_hModule)
		{
			FreeLibrary(m_hModule);
			m_hModule = NULL;
			OutputDebugString(_T("dll-释放成功\r\n"));
		}

	}

	void lineExtra(cv::Mat &src, int value1, int &center_x, int &center_y)
	{
		if (!m_hModule)
		{
			ASSERT(m_hModule);
			return;
		}
		typedef void(*pFunPtr)(cv::Mat &sr1, int value11, int &center_x1, int &center_y1);
		pFunPtr pfunPtr;//列为x  行为y   纵向为Z
		pfunPtr = (pFunPtr)GetProcAddress(m_hModule, "lineExtra");
		if (!pfunPtr)
		{
			ASSERT(pfunPtr);
			FreeDll();
			return;
		}

		return pfunPtr(src, value1, center_x, center_y);
	}

可以修改XX.dll的名称,只需要给XX.dll重新命名为YY.dll,在调用时调用YY.dll即可

方法二:静态调用(同时需要.h,  .lib, .dll缺一不可)

静态调用有两种方式

方式1:代码

该方式只需要三步: 

1. 将dll  lib 放入bin文件夹下,将.h放工程目录下

2.将.h添加到工程中

3.添加如下语句,即可调用对应的dll中函数

#include  "createYY.h"
#pragma comment(lib, "..//bin//YY.lib")//路径为lib放置的路径

方式2:配置属性

include文件路径:

 lib--添加lib库的路径及依赖项

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值