VS2005 如何编写DLL以及添加DLL
2013-04-20 23:32
239 查看
编写DLL:
编写DLL的目的是为了程序更好的执行有效率,DLL的作用呢就类似于一些驱动了,主要是给上层提供函数接口,使整个函数流程更清晰明了。首先,新建一个MFC或者WIN32的DLL程序,在固有框架下编写上层需要的函数接口。。这里涉及到函数的问题了,我更喜欢直接建个def文件,把文件名写入文件,通过EXPORTS这个宏,就可以调用正确的函数名了。当然,可以定义为WINAPI接口函数,只要在.cpp文件的各个函数之前添上这个标识即可。点击compfile,编译生成了DLL。
添加DLL:
如何添加呢?把生成的DLLcopy到应用程序的目录下,程序里面:
xxx.h:
int (*ADD)(int,int);
int (*SUB)(int,int);
xxx.cpp
HINSTANCE hInst;
hInst = ::LoadLibrary("xxx.dll");
ADD = (int(*)(int,int))::GetProcAddress(hInst,"add");
SUB = (int(*)(int,int))::GetProcAddress(hInst,"sub"); //WINAPI情况,加到*前
当然有些接口函数用完就要释放了,这时候freeLibrary出马了,直接free即可。
编写DLL的目的是为了程序更好的执行有效率,DLL的作用呢就类似于一些驱动了,主要是给上层提供函数接口,使整个函数流程更清晰明了。首先,新建一个MFC或者WIN32的DLL程序,在固有框架下编写上层需要的函数接口。。这里涉及到函数的问题了,我更喜欢直接建个def文件,把文件名写入文件,通过EXPORTS这个宏,就可以调用正确的函数名了。当然,可以定义为WINAPI接口函数,只要在.cpp文件的各个函数之前添上这个标识即可。点击compfile,编译生成了DLL。
添加DLL:
如何添加呢?把生成的DLLcopy到应用程序的目录下,程序里面:
xxx.h:
int (*ADD)(int,int);
int (*SUB)(int,int);
xxx.cpp
HINSTANCE hInst;
hInst = ::LoadLibrary("xxx.dll");
ADD = (int(*)(int,int))::GetProcAddress(hInst,"add");
SUB = (int(*)(int,int))::GetProcAddress(hInst,"sub"); //WINAPI情况,加到*前
当然有些接口函数用完就要释放了,这时候freeLibrary出马了,直接free即可。
相关文章推荐
- 如何在使用VS2005的MFC编写ActiveX控件时,为控件添加属性、方法?
- C# 安装程序制作,如何添加第三方DLL以及自定义的文件夹(如uploadFiles 文件夹)
- C++Builder编写dll时如何添加共享数据段
- 如何在VS2005中自动添加事件处理函数?
- 浅谈 JS 对象添加 getter与 setter 的5种方法以及如何让对象属性不可配置或枚举
- VS2005、VS2008中如何屏蔽讨厌的MSVCR*.dll的引用
- VS2005下如何新建一个WINCE设备的DLL工程
- 如何在项目中引入.h、.lib和dll、以及.cpp
- 在vs2008中编写dll如何生成lib文件
- Jquery-easyui的默认图标的使用,以及如何添加自己想要的图标
- 如何编写DLL实例,很早以前的笔记
- Intellij Idea 15 下新建 Hibernate 项目以及如何添加配置
- QT总结第3篇:如何在QT中添加.lib,.dll还有.h文件
- 如何编写Dll(用命令行编译加深理解)
- Windows下如何使用QT编写dll程序
- VS2005 添加 Microsoft.Office.Tools.Word.dll 等引用
- 如何侦听iphone设备方向改变事件,以及如何添加事件的处理事件
- stl(二)------如何在vector中添加元素,以及遍历元素
- Windows下如何使用QT编写dll程序
- 如何在vs2005中用代码编写“使窗体显示全屏效果”啊?