!关于怎么读取调用dll?

求救!~关于如何读取调用dll??
今天上头交给我个任务,给我看了一个用mfc写的demo,这mfc关于ic卡片读取的  里面有一个叫  mwrf32.dll 的dll,由于我此前没有c++经验,靠着百度google 2大神,我先在mfc程序上加了个button,点击button,实现了需要实现的功能。主要是ic卡放到读卡器上后,会读出卡片的卡号,并且把卡号,时间,编号,文件输出。

可是现在又要求将这个程序写成没有界面直接放在服务器上运行, 我想到了用控制台,可我和mfc一样 吧这个dll的头文件和dll放到根目录下,组建后,出现一大堆错误,全都是说 这个mwrf32.h这个头文件有问题, 我纳闷了,于是百度了,然后发现可以使用  显式调用 的方法 就是先  通过LoadLibray()得到dll句柄  然后 GetProcAddress( ) 得到具体的函数,单Get这个函数的参数各大网站上五花八门,我看的糊涂了,求问。。。

mwrf32.h 头文件:
extern "C"
{
void __stdcall usb_set_timeouts(unsigned long _TotalTimeOuts);

//1.
HANDLE __stdcall  rf_init(__int16 port,long baud);
//2.
__int16 __stdcall rf_exit(HANDLE icdev);
//3.
__int16 __stdcall rf_config(HANDLE icdev,unsigned char _Mode,unsigned char _Baud);
//4.
__int16 __stdcall rf_request(HANDLE icdev,unsigned char _Mode,unsigned __int16 *TagType);
__int16 __stdcall rf_request_std(HANDLE icdev,unsigned char _Mode,unsigned __int16 *TagType);

//5.
__int16 __stdcall rf_anticoll(HANDLE icdev,unsigned char _Bcnt,unsigned long *_Snr);
//6.
__int16 __stdcall rf_select(HANDLE icdev,unsigned long _Snr,unsigned char *_Size);
//7.
__int16 __stdcall rf_authentication(HANDLE icdev,unsigned char _Mode,unsigned char _SecNr);
//8.
__int16 __stdcall rf_halt(HANDLE icdev);
//9
__int16 __stdcall rf_read(HANDLE icdev,unsigned char _Adr,unsigned char *_Data);
//10.
__int16 __stdcall rf_read_hex(HANDLE icdev,unsigned char _Adr, char *_Data);
//11.
__int16 __stdcall rf_write(HANDLE icdev,unsigned char _Adr,unsigned char *_Data);
//12.
__int16 __stdcall rf_write_hex(HANDLE icdev,unsigned char _Adr,char *_Data);
//  ----------就用下面这个蜂鸣的函数举例吧,谢谢。。
__int16 __stdcall rf_beep(HANDLE icdev,unsigned short _Msec);
//后面都差不多。。
}




这是我的主文件  card.cpp 控制台进程

#include <iostream>
#include <fstream>
#include <windows.h>
#include <time.h> 
typedef int (CALLBACK* rf_beep)

void main(){
HINSTANCE hDll;
hDll = LoadLibrary("mwrf32.dll");

lpMax Max;
Max = (lpMax)GetProcAddress(hDll,"Max");
int value;
value = Max(2,9);

}




------最佳解决方案--------------------
typedef short (*__stdcall rf_beep_callback)(HANDLE,unsigned short);

rf_beep_callback rf = (rf_beep_callback)GetProcAddress(hDll,"rf_beep");
------其他解决方案--------------------
用你的代码,报错,typedef 这行编译不过,,


我写了编译能过,单运行时会报  the value of ESP was not properly saved这个错


#include <iostream>
#include <fstream>
#include <windows.h>
#include <time.h> 

typedef HANDLE (*INIT)(__int16 ,long );
typedef short (*BEEP)(HANDLE ,unsigned short );
//typedef HANDLE (*__stdcall rf_init)(__int16 ,long );
//typedef short (*__stdcall rf_beep_callback)(HANDLE,unsigned short);