如何把自己常用的类封装到DLL方便使用
来源:互联网 发布:淘宝电视机19寸 编辑:程序博客网 时间:2024/06/02 13:42
你可能经常使用自己的传递函数类,最好的做法就是把你写好的类封装成dll。具体做法如下:
第一步:制作dll
利用VS2013新建win32项目,下一步选择 dll,选择空项目。假设你要添加的类明为:test。添加头文件test.h 和test.cpp 。并且在头文件test.中的类的声明为:
class _declspec (dllexport) test
{
...
}
说明从dll导出这个类。在test.cpp中实现该类。这样编译完成就会产生test.dll和test.lib两个文件。
第二步:使用这个dll,可以分为静态和动态调用两种方式。
1】静态调用
(一).静态调用其步骤如下:
1.把你的test.DLL、test.lib、test.h拷到你目标工程执行目录下(可以理解为.cpp文件所在的目录下);
2.选择主菜单上的项目->属性->配置属性->链接器->输入->附加依赖项 添加 test.lib。或者用 #pragma comment(lib,"test.lib")。
3.把test.h中的_declspec (dllexport)改为_declspec (dllimport)
4.最后在你目标工程(*.cpp,需要调用DLL中的函数)中包含你的:#include "test.h " 就可以使用test类了。
注意:如果想在DLL中添加新的接口(即函数),需要重新编译,把原来test.DLL、test.lib、test.h 全部用新的覆盖掉。
2】动态调用
把你的test.DLL拷到你目标工程执行目录下(可以理解为.cpp文件所在的目录下);
HINSTANCE hDllInst = LoadLibrary( "test.dll "); //装载dllif(hDllInst) { typedef DWORD (WINAPI *MYFUNC)(DWORD,DWORD); MYFUNC youFuntionNameAlias = NULL; // youFuntionNameAlias 函数另一个名字,别名youFuntionNameAlias = (MYFUNC)GetProcAddress (hDllInst, "youFuntionName "); //youFuntionName 在DLL中声明的函数名 if(youFuntionNameAlias) { youFuntionNameAlias(....); //等于 执行在dll中你想用的函数} FreeLibrary(hDllInst); //卸载dll} }
0 0
- 如何把自己常用的类封装到DLL方便使用
- 自己编写的Windows字符串类 封装字符串格式转换和常用操作 方便使用
- 【086】部署nodejs程序时,如何把自己用到的npm模块封装成Docker镜像,方便在离线的时候使用?
- 如何把oslo.config使用到自己的项目中
- 把WinMain封装到dll里
- 把WinMain封装到dll里
- //自己封装的几个函数方便记忆
- UIAlertController的封装,方便使用
- 把项目中常用的小工具做个总结吧,方便自己以后用到
- 如何将自己的实体类封装到一个list中,定义自己一系列的方法
- 把对数据库的增删改查封装到类中,方便以后的使用。
- 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- 如何使用Android Studio把自己的Android library分发到jCenter和Maven Central
- 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- 如何使用Android Studio把自己的Android library分发到jCenter和Maven Central
- 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- 如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
- BNU 33564 Chinese Dialects
- [翻译]Drools6.2帮助文档-目录
- AngularJS ng-repeat下使用ng-model
- Android Intent详解
- 操作系统功能认识
- 如何把自己常用的类封装到DLL方便使用
- 笔试1
- C++ stringstream的用法
- 第7题
- iOS学习,数据存储小结
- request属性 request.getAttribute()
- 简要说明RFID系统的时隙ALOHA算法的工作过程
- POJ_3013_Big Christmas Tree(最短路)
- 第7周作业 相关性借补,knn插补