调用dll中的第xx个函数

已知dll中参数类型,但不知道函数名的函数调用方法

已知dll中函数的调用类型,以及它是dll中的第几个函数,但不知道它具体的函数名(有时客户给的dll文件有这种情况),该如何调用它呢?

可以使用以下获取函数的方式,xx为函数序号:
pFun=GetProcAddress(hDLL, MAKEINTRESOURCE(xx))

以下是动态调用dll库的全部代码:

typedef void(*algo)(unsigned char *);			//在调用DLL函数之前,要定义函数指针,用来调用函数。可以看出,函数指针的类型与DLL中的要一致。
			HMODULE hMod = LoadLibrary(KeyTring);		//调用LoadLibrary函数加载DLL文件。加载成功,hMod指针不为空。这里也可以是一个地址加文件名
			if (hMod != NULL)
			{
				/*
				如果加载成功,则可通过GetProcAddress函数获取DLL中需要调用的函数的地址。
				获取成功,TOWIN_algorithm指针不为空。
				*/
				algo TOWIN_algorithm = (algo)GetProcAddress(hMod, MAKEINTRESOURCE(1));
				if (TOWIN_algorithm != NULL)
				{
					TOWIN_algorithm(rSeed);		//获取地址成功后,通过TOWIN_algorithm调用函数功能
				}
				FreeLibrary(hMod);				//在完成调用功能后,不在需要DLL支持,则可以通过FreeLibrary函数释放DLL
			}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值