__declspec(dllexport)和__declspec(dllimport)是VC中定义的一对关键字。他们分别表示所定义的函数是输出函数(一般在DLL中)还是导入函数(一般在调用DLL的程序中)
#define DLLEXPORT __declspec(dllexport)是对__declspec(dllexport)定义的宏DLLEXPORT
下面就是对函数的具体说明了。我觉得你的文章中有个地方写得不对。应该是:
UINT __declspec (*pfnIniUserData)(LPCTSTR lpszName) = NULL;//定义一个函数指针pfnIniUserDataFARPROC *pProcessAddr = NULL;
pProcessAddr = (FARPROC*)&pfnIniUserData;
*pProcessAddr = GetProcAddress(m_hManageDrv, "IniUserData");
GetProcAddress是一个特定DLL中的输出函数地址,参数以函数指针形式给出。
之前应该还有一个LoadLibrary函数用来将DLL模块映射如应用程序的地址空间。
LoadLibrary("DLL的地址");
这种方式是显式的调用DLL的方法,其实一般不需要这么复杂。隐式调用就可以了。
相关的书籍可以查阅《WINDOWS 95高级编程指南》
#define DLLEXPORT __declspec(dllexport)是对__declspec(dllexport)定义的宏DLLEXPORT
下面就是对函数的具体说明了。我觉得你的文章中有个地方写得不对。应该是:
UINT __declspec (*pfnIniUserData)(LPCTSTR lpszName) = NULL;//定义一个函数指针pfnIniUserDataFARPROC *pProcessAddr = NULL;
pProcessAddr = (FARPROC*)&pfnIniUserData;
*pProcessAddr = GetProcAddress(m_hManageDrv, "IniUserData");
GetProcAddress是一个特定DLL中的输出函数地址,参数以函数指针形式给出。
之前应该还有一个LoadLibrary函数用来将DLL模块映射如应用程序的地址空间。
LoadLibrary("DLL的地址");
这种方式是显式的调用DLL的方法,其实一般不需要这么复杂。隐式调用就可以了。
相关的书籍可以查阅《WINDOWS 95高级编程指南》
解决方案 »
- ON_WM_DRAWITEM()和ON_WM_MEASUREITEM()消息找不到的问题
- 请教高手们一个非常非常难的问题
- 请问如何设置edit控件内部的颜色?能给点简单的码么?
- 哭着求 MSDN2001的下载 (最好是中文版的)是在是找不到了 ,D版还买不到,谢谢大牛门
- 一个很有创意的问题!!!
- VC打开AUTOCAD图形
- C++的对象至今模糊不清,我本人还有找对象的权利吗?
- CString转换成char*
- VC怎样执行这个存储过程?最后要得到输出的参数(@Result)。
- To: acptvb如何提高AciveX, COM, MTS的理解。
- Bmp2Gif 的源碼,who要!
- 那里有installshield的中文说明
刚才说你不对的那句话我也少写了一点:
UINT __declspec(dllimport) (*pfnIniUserData)(LPCTSTR lpszName) = NULL;//定义一个函数指针pfnIniUserData
其实按照我自己的经验,好象__declspec(dllimport)都是多余的。这个定义写在调用DLL的应用程序中!