动态库编程
棉猴
这个作者很懒,什么都没留下…
展开
-
VS2010动态库调试方法
打开调用动态库的程序,之后在“解决方案资源管理器”中,选中“解决方案’XXX’”,之后在右键菜单中选择“添加->现有项目”,之后在“添加现有项目”对话框中选择动态库程序的vcxproj文件,如图1所示。此时就将这两个程序放在了同一解决方案下。原创 2017-05-27 06:12:18 · 5798 阅读 · 0 评论 -
VS2015动态库编程之入口函数
对于可执行文件,其入口函数为WinMain(),对于动态库文件,其入口函数为DllMain()。当系统加载动态库文件时,就会调用该文件的DllMain()函数。原创 2017-07-10 06:51:53 · 2400 阅读 · 0 评论 -
VS2015动态库编程之导出变量
在动态库中定义的全局变量,可以在调用该动态库的程序中进行访问和修改。原创 2017-07-10 06:55:25 · 1426 阅读 · 0 评论 -
VC++远程注入动态库的实现(6-1)
远程注入动态库,指的是在另外一个进程(远程进程)中创建导入动态库的线程(远程线程)。要完成的功能都在被导入的动态库中实现。原创 2017-08-10 11:38:08 · 849 阅读 · 0 评论 -
VC++远程注入动态库的实现(6-2)
显示当前进程的基本原理是获取当前进程的“快照”,之后遍历快照中的所有进程,并把进程名称在CComboBox中显示出来。原创 2017-08-10 11:56:47 · 541 阅读 · 0 评论 -
VC++远程注入动态库的实现(6-3)
当点击了图3-1中的“注入”按键,注入程序会将指定的动态库注入到指定的远程进程中。在VS2015的“资源编辑器”中双击“注入”按键,为该按键添加消息响应函数OnBnClickedButtonInject()。当在程序中点击了“注入”按键,则会调用该函数。原创 2017-08-10 12:01:28 · 546 阅读 · 0 评论 -
VC++远程注入动态库的实现(6-4)
要将指定的动态库路径写入到进程的地址空间中,需要为该动态库路径分配地址空间。要分配地址空间,就需要知道要分配地址空间的大小。假设动态库文件与注入程序文件在同一文件夹下,即如果注入文件的绝对路径为“C:\1\2\inject.exe”,则动态库的绝对路径为“C:\1\2\myDll.dll”。分配地址空间的大小即为动态库绝对路径的长度,首先获取注入文件的绝对路径,之后将绝对路径中的“inject.exe”换成“myDll.dll”即可。原创 2017-08-10 12:05:16 · 655 阅读 · 1 评论 -
VC++远程注入动态库的实现(6-5)
在远程注入动态库之后,必须要在远程进程中释放该动态库,否则不能实现多次注入。远程释放动态库的基本原理与注入动态库类似,都是在远程进程中创建新的线程,只不过释放动态库时,线程函数为FreeLibrary(),而该函数的参数是已经注入的动态库模块在远程进程中的地址。原创 2017-08-10 12:08:17 · 419 阅读 · 0 评论 -
VC++远程注入动态库的实现(6-6)
通过Module32First()和Module32Next()函数遍历“快照”中的所有模块。这两个函数的使用方法与“3.2.2 遍历进程并显示”中介绍的Process32First()与Process32Next()函数的用法类似。原创 2017-08-10 12:10:29 · 707 阅读 · 0 评论 -
VS2015动态库编程基础篇资源汇总
VS2015动态库编程基础篇资源汇总原创 2017-08-10 12:24:22 · 1987 阅读 · 0 评论 -
VS2015动态库编程提高篇之远程注入资源汇总
VS2015动态库编程提高篇之远程注入资源汇总原创 2017-08-10 12:29:52 · 618 阅读 · 0 评论 -
VS2015动态库编程之Win32动态库的使用(下)
文章相关视频教程下载地址:http://pan.baidu.com/s/1skKSrSh4 动态库的加载及调用动态库的加载分为静态加载、动态加载两种方式。4.1 静态加载动态库静态加载动态库的步骤包括:设置项目附加库目录;设置项目附加依赖项;移动DLL文件以及声明动态库的导出函数。创建基于对话框的MFC项目,其项目名为Use_DLL_Test。其界面布局及控件...原创 2017-07-06 22:16:45 · 2885 阅读 · 0 评论 -
VS2015动态库编程之MFC扩展动态库(上)
MFC扩展动态库的内部可以使用MFC,导出的函数或者类也可以是MFC类型的。一般使用MFC扩展动态库来包含一些MFC的增强功能,比如扩展MFC的CStatic或者CButton等控件类,使其具备更强大的功能。原创 2017-07-17 22:36:51 · 1209 阅读 · 0 评论 -
VS2015动态库编程之MFC扩展动态库(下)
相关链接1:=WM_COLCOLOR当对话框中的控件时,控件会向对话框发送WM_COLCOLOR消息。而对话框收到该消息后,如果没有对该消息进行处理(没有该消息的响应函数),则对话框会将该消息反射回控件,由控件自行处理,这就是消息反射。原创 2017-07-17 22:38:58 · 1220 阅读 · 0 评论 -
VS2015动态库编程之导出位图资源
DLL文件不但可以导出函数、变量和类,还可以导出对话框资源或者位图资源。之前我们学习了在DLL文件中导出对话框资源的方法,今天我们将学习在DLL文件中导出位图的方法。原创 2017-07-17 22:31:28 · 1485 阅读 · 0 评论 -
VS2015动态库静态加载时指定动态库位置的方法
在VS2015中静态加载动态库时,需要将库文件(DLL)拷贝到调用程序所在的路径下,如果所需动态库较多时,就会非常麻烦。可以在项目中指定应用程序搜索动态库的路径,这样就无需再将动态库文件进行拷贝了。可以通过两种方法为应用程序指定搜索动态库的路径,一种是设置应用程序的“工作目录”,另外一种是设置应用程序的“环境”。原创 2017-05-27 06:15:28 · 6104 阅读 · 0 评论 -
MFC扩展DLL添加对话框资源时对话框ID是“未声明标识符”
在MFC扩展DLL中添加对话框资源后,为该对话框资源添加对应的类之后,编译程序会显示“error C2065: “IDD_DIALOG1”: 未声明的标识符”,其中IDD_DIALOG1是添加的对话框资源ID。原创 2017-05-24 22:18:53 · 4677 阅读 · 4 评论 -
VS2015动态库编程之导出C++类(上)
基于Win32的动态库不但可以导出函数、变量,还可以导出类。在DLL文件中声明和定义类,在其他程序中调用该类即可。原创 2017-07-12 06:51:29 · 4543 阅读 · 0 评论 -
VS2015动态库编程之导出C++类(下)
创建一个基于对话框的MFC程序,在该程序的界面中,输入圆的半径后,可以获取该圆的周长和面积,其界面结构为图4所示。原创 2017-07-12 23:09:49 · 1833 阅读 · 2 评论 -
VS2015静态库的使用(上)
静态库是一个包含了数据和函数的二进制的文件,其后缀名是lib。当使用静态库编译链接可执行文件时,链接器从库中复制这些函数和数据并把它们和应用程序的其它模块组合起来创建最终的可执行文件。原创 2017-07-04 22:41:20 · 3153 阅读 · 4 评论 -
VS2015静态库的使用(下)
静态库是一个包含了数据和函数的二进制的文件,其后缀名是lib。当使用静态库编译链接可执行文件时,链接器从库中复制这些函数和数据并把它们和应用程序的其它模块组合起来创建最终的可执行文件。原创 2017-07-04 22:46:36 · 3252 阅读 · 0 评论 -
VS2015动态库编程之Win32动态库的使用(上)
在使用动态库时一般提供两个文件:后缀名是lib的引入库文件和后缀名是dll的动态库文件。其中引入库文件包含了DLL导出的函数和变量的符号名,而动态库文件包含了DLL实际的函数和数据。在编译链接可执行文件时,只需要链接DLL的引入库文件,直到可执行文件运行时,才加载动态库文件。原创 2017-07-06 22:04:15 · 1180 阅读 · 0 评论 -
VS2015动态库编程之Win32动态库的使用(中)
文章相关视频教程下载地址:http://pan.baidu.com/s/1skKSrSh3 导出函数的声明在DLL的源文件中定义了导出函数之后,还需要对该导出函数进行声明。可以通过三种不同的方法实现对导出函数的声明:第一种是采用模块定义(def)文件对导出函数进行声明;第二种是采用头文件的方法对导出函数进行声明;第三种是在调用DLL的程序中直接声明。3.1 采用模块定义(d...原创 2017-07-06 22:09:49 · 1198 阅读 · 0 评论 -
VS2015动态库编程之MFC规则动态库(上)
通过VS2015不但可以创建基于Win32的动态库程序,还可以创建基于MFC的动态库程序。在基于MFC的动态库中,可以使用MFC类。原创 2017-07-16 22:58:10 · 1256 阅读 · 0 评论 -
VS2015动态库编程之MFC规则动态库(中)
对比静态链接,共享链接的MFC规则动态库所占的体积较小。但是在使用后者中的资源时,需要进行模块切换。原创 2017-07-16 23:03:34 · 1903 阅读 · 0 评论 -
VS2015动态库编程之MFC规则动态库(下)
解决上述问题的方法是模块切换,即将资源模块句柄设置为DLL模块的起始地址,之后显示的对话框即为DLL模块中ID为5000的对话框了。可以通过两种方法实现模块切换,一种是在DLL中实现切换,另一种是在调用DLL的程序中实现切换。原创 2017-07-16 23:06:20 · 988 阅读 · 0 评论 -
MFC基于对话框程序启动时隐藏窗口的实现
对于基于对话框的MFC程序,如果想要程序启动时就隐藏主窗口,无法在该对话框类的OnInitialDialog()函数中实现隐藏窗口的功能。但是,可以通过对话框程序响应WM_WINDOWPOSCHANGING消息来实现隐藏窗口的功能。1 OnInitialDialog()函数OnInitialDialog()函数是CDialog类的成员函数,该函数用来响应WM_INITDIALOG消息的。当原创 2017-09-30 06:13:08 · 5629 阅读 · 0 评论