![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
DLL
DLL
余生皆假期-
ok了家人们
展开
-
VS2017 DLL动态库使用教程【三】动态内存管理
在dll内的malloc内存,必须在dll内free。否则就会出现问题。比如:DLL文件:#include <stdint.h>#include <stdio.h>#include <stdlib.h>_declspec(dllexport) int* GetA(int size) //根据形参malloc出一个内存,并把它返回{ in...原创 2018-07-08 12:02:41 · 1079 阅读 · 0 评论 -
VS2017 DLL动态库使用教程【二】DLL加载与卸载
DLL的加载DLL不能独立运行,他只有被*.exe加载才会被运行。多个进程可以同时调用一个DLL。数据段与代码段 在DLL文件里,至少分为两个段(Section):Code Section:代码段,存储指令(函数体) Code Section:数据段,存放全局变量 当*.dll被加载时,代码段之被加载一次,是公共的。数据段被每个程序各自拷贝一份,是私有的...原创 2018-07-07 13:47:47 · 4059 阅读 · 0 评论 -
VS2017 DLL动静态库使用教程【一】创建一个DLL
考虑两个问题:1,printf是我们用过很多次的函数,但这个函数定义在哪里?他只有<stdio.h>一个声明。2,你发明一个有价值的算法,需要给别人使用,又不想开放源码。在c++里,使用库的技术,可以将编译好的代码提供给第其他程序员,保证代码的隐私性,库为两种:1,动态库 Dynamic Link Library (DLL)2,静态库 static librar...原创 2018-07-02 00:43:20 · 3543 阅读 · 0 评论 -
VS2017 DLL动态库使用教程【四】使用头文件
如何让我们的dll程序也能像<stdio.h>一样让别人使用呢?很简单,我们需要先新建两个文件。其中mydll.cpp和mydll.h都是需要你在dll项目中新建的,如果你不知道怎么新建一个dll项目,请阅读本教程第一章。建立完成后,我们首先写mydll.h,代码如下:#ifndef MYDLL_EXPORTS //条件编译指令,判断是否定义了 MYDLL_EX...原创 2018-07-08 22:59:19 · 4634 阅读 · 1 评论 -
VS2017 DLL动态库使用教程【五】dll中使用导出一个类
#define MYDDLL _declspec(dllexport)#else#define MYDDLL _declspec(dllimport)#endifclass MYDDLL myClsss{public: myClsss(int i); void print();private: int value;};在头文件使用class MYDLL 类名字,即可。...原创 2018-07-09 21:37:00 · 2981 阅读 · 0 评论 -
VS2017 DLL动态库使用教程【六】动态加载DLL
什么是动态加载?之前我们都是用的是自动加载,他是在exe运行启动时,就加载dll。动态加载,在编译的时候不指定dll,根据代码需要时调用LoadLibrary来加载dll。而且动态加载可以根据程序需时卸载dll,自动加载只能程序结束卸载dll。动态加载也叫手工加载。 如何使用动态加载?首先我们对之前的dll文件做一个小改动,因为动态加载无需声明头文件(*.h),所以所以...原创 2018-07-12 00:28:59 · 9146 阅读 · 1 评论 -
VS2017 DLL动态库使用教程【七】为什么我的程序不能在别人电脑运行
考虑一个很最最最简单的程序:#include <stdio.h>#include <Windows.h>int main(){ printf("你好\n"); system("pause"); return 0;}将其编译,得到一个*.exe文件。在本地自然可以顺便运行,有时候你刚刚做完一个这样的练习,迫不及待地要向朋友炫耀一下。一脸淫笑的你...原创 2018-07-12 16:34:13 · 12049 阅读 · 6 评论