动态链接库DLL创建和使用
来源:互联网 发布:动态表单数据库设计 编辑:程序博客网 时间:2024/05/21 06:59
到目前为止刚刚开始接触DLL(Dynamic Link Library),一边看书,一边创建了一个DLL文件,然后进行了Dll文件的使用,具体操作以及代码如下:
1、CreateDll工程的创建,工程类型为win32下的DLL类型
生成的程序入口函数为:
BOOL APIENTRY DllMain( HMODULE 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;
}
在CreateDLL.cpp下添加如下代码:
extern "C" __declspec(dllexport) void HelloWorld()
{
std::cout<<"HelloWorld"<<std::endl;
}
extern "C"说明是用C语言的方式去解析代码
__declspec(dllexport),导出 DLL 函数,向导出的 DLL 函数中添加函数关键字
2、进行代码的编译,查看Degbug目录下生成CreateDll.dll文件。
3、新建工程TestDllLoad对已经生成的CreateDll文件进行测试,新建过程类型为win32控制台应用程序,只需要在_tmain()函数下添加代码如下:
int _tmain(int argc, _TCHAR* argv[])
{
HINSTANCE hInst;
typedef void (*FUN) ();
FUN fun;
hInst = LoadLibrary(_T("..\\..\\CreateDll\\Debug\\CreateDll.dll"));
fun = (FUN) GetProcAddress(hInst,"HelloWorld");
fun();
system("pause");
return 0;
}
LoadLibrary函数原型HMODULE WINAPI LoadLibrary( _In_ LPCTSTR lpFileName),用于导入相应的Dll;
GetProcAddress函数原型 FARPROC GetProcAddress(HMODULE hModule, LPCSTR lpProcName),利用导入Dll的句柄和相应应用的函数名得到函数的入口地址;
需要注意的是Dll文件的相对目录,目录问题导致的很多问题。
详细的代码见我的资源 http://download.csdn.net/detail/huijun_liu/5332510
- 动态链接库DLL创建和使用
- [DLL]创建和静态使用动态链接库dll
- vs2010创建和使用动态链接库DLL和lib
- DLL:创建和使用动态链接库的步骤 (C++)
- 动态链接库DLL的创建和使用
- 动态链接库DLL的创建和使用
- vs2010创建和使用动态链接库(dll)
- vs2010创建和使用动态链接库(dll)
- vs2010创建和使用动态链接库(dll)
- vs2010创建和使用动态链接库(dll)
- vs2010创建和使用动态链接库(dll)
- vs2010创建和使用动态链接库(dll)
- 动态链接库DLL的创建和使用
- vs2010创建和使用动态链接库(dll)
- VS2010 创建和使用动态链接库(dll)
- vs2010创建和使用动态链接库(dll)
- vs2010创建和使用动态链接库(dll)
- vs2010创建和使用动态链接库(dll)
- 在CentOS上安装Git
- 渥瑞达 Linux Unix下C语言软件开发视频教程 笔记3
- 黑马程序员 网络编程
- 每天一个linux命令目录
- git的使用之三
- 动态链接库DLL创建和使用
- Data Modle:游戏对战模型
- hashCode()的作用
- J2EE中JSP页面引用外部资源时的路径问题
- protected成员在c++和java的区别
- Ubuntu 13.04 flash
- 花1元钱试用了阿里云服务器
- Miller_Rabbin 素数测试
- hdu-1031