VC++ DLL创建与使用_v2
来源:互联网 发布:unity3d gui text 编辑:程序博客网 时间:2024/06/09 14:31
1 DLL类型:有三种
Win32DLL: 不使用MFC库,可被任何程序使用。
MFC Regular DLL 使用MFC库,与MFC库静态或动态连接,可被任何程序使用。
MFC Extension DLL ,与MFC动态联合编译,只能被MFC程序使用。
三种DLL的异同:
2 DLL的创建与调用
2.1 Win32DLL的创建
两种方法:A通过.h文件定义要输出的资源 B通过.def文件定义要输出的资源
2.1.1用.h文件定义要输出的资源:
例子:
win32dll_h.h
extern "C" __declspec(dllexport) int MaxNum(int a, int b);
win32dll_h.cpp
DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch(ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
int MaxNum(int a, int b)
{
if(a>b) return a;
else return b;
}
2.1.2用.def文件定义要输出的资源
w32dll_def.def
; ; is the notes symbol in a def file
LIBRARY W32DLL_DEF
DESCRIPTION "W32DLL_DEF Windows Dynamic Link Library"
; Function name must equal the name in .cpp file and sensitive to 大小写
EXPORTS
MinNum
W32dll_def.cpp
int MaxNum(int a, int b)
{
if(a<b) return a;
else return b;
}
2.1.3 隐式调用W32DLL中的函数
相同的部分:将.lib文件和.dll文件copy到要调用的程序的目录下或系统目录(/windows等)下
不同的部分:是调用前的声明。
.h创建的dll: extern "C" __declspec(dllimport) int MaxNum(int a, int b);
.def创建的dll: __declspec(dllimport) int MaxNum(int a, int b);
不要前面的extern "C"
2.2 MFC Regular DLL的创建
- VC++ DLL创建与使用_v2
- vc 创建与使用 dll
- VC++中DLL的创建和使用
- VC DLL的创建和使用
- 用VC创建并使用DLL
- 用VC创建并使用DLL
- 用VC创建并使用DLL
- Dll的创建与使用
- dll的创建与使用
- VS创建与使用dll
- DLL的创建与使用
- DLL的创建与使用
- VC++ DLL的创建与动态调用模板
- VC++6.0如何创建与调用动态链接库(dll)
- VC++6.0如何创建与调用动态链接库(dll)
- VC下Non-MFC DLL创建和使用
- VC.Net中创建与使用静态链接库(lib)和动态链接库(dll),以及它们的区别.
- VC.Net中创建与使用静态链接库(lib)和动态链接库(dll),以及它们的区别
- 多久·多少
- Hibernate3 Tools 全英文转载(有空再翻译)
- ASP.NET常用函数
- 精装追MM总结版 (转载)
- 精装追MM总结版 (转载)
- VC++ DLL创建与使用_v2
- 稍做努力,昨天在redhat 9上编译linux 2.6.11
- Servlet和JSP 性能调整
- Jasperreport文档
- int2String速度探讨
- .NET 不使用OLE自动化将EXCEL转换为DataSet [控件]
- FileSystemObject オブジェクト(1)
- 今天终于有空写一下我的工作经历了
- MDA,开创大时代