精华内容
下载资源
问答
  • WINDOWS静态与动态

    千次阅读 2021-01-11 17:03:36
    静态: 编译静态时,只会产生.lib文件。所有数据都在lib文件中。静态的使用方式只有一种,及静态载入,在程序编译链接阶段,后将静态中的所有数据都合并到最终生成的exe文件中,链接完成后就不再需要静态...

    一 静态库:

    编译静态库时,只会产生.lib文件。所有数据都在lib文件中。静态库的使用方式只有一种,即静态载入,在程序编译链接阶段,会将静态库中的所有数据都链接合并到最终生成的exe文件中,链接完成后就不再需要静态库文件,这样方便程序移植,但是也带来程序臃肿过大的弊端。同时,如果静态库中函数有所变化,需要重新编译工程来生成新的exe文件,过程较为麻烦。

    二 动态库:

    编译动态库时,会产生.lib文件和.dll文件。lib文件只包含函数或者变量的地址信息,而其具体实现都在dll文件中。编译链接阶段只需要.lib文件中的数据,与dll文件无任何关系,程序运行时才会用到dll文件,与lib文件无任何关系。动态库的使用方式包括静态载入和动态载入,静态载入在程序启动时就载入dll文件,动态载入在需要时使用函数LoadLibrary手动载入dll文件,载入dll文件的时机更加随机而不会都在程序启动时一起载入,对于程序中大量使用dll文件时尤为有效,减少了程序启动的时间,在特定条件下载入特定的dll文件,分散dll文件的载入时间。同时,如果动态库中函数实现有所变化,只需要用新的dll文件替换掉旧的dll文件即可,exe文件无需重新编译生成,非常适合库中函数需要经常更新的场合。

    三 解决方案TestLibrary

    下面结合一个具体的工程来做解释。解决方案为TestLibrary,TestLibary目录中内容如下:

    在这里插入图片描述

    文件夹TestDll、TestLib、UseDll、UseLib是四个工程的主目录,分别用来生成动态库生成静态库使用动态库使用静态库,各个工程的输出文件路径都设置为Output

    1 工程TestLib

    有两个文件TestLib.hTestLib.cpp

    TestLib.h内容:

    // 注意:静态库导出函数无需使用extern "C" __declspec(dllexport)修饰
    
    void TestLibFunc1();
    void TestLibFunc2();
    

    TestLib.cpp内容:

    #include "TestLib.h"
    #include <iostream>
    
    void TestLibFunc1()
    {
    	std::cout << "TestLibFunc1" << std::endl;
    }
    
    void TestLibFunc2()
    {
    	std::cout << "TestLibFunc2" << std::endl;
    }
    

    编译后只生成TestLib.lib文件。

    2 工程TestDll

    有两个文件TestDll.hTestDll.cpp

    TestDll.h内容:

    // 注意:动态库导出函数一定要使用__declspec(dllexport)修饰
    // 如果不使用__declspec(dllexport)进行修饰,
    // 编译时不会生成.lib文件。
    
    #define EXPORT __declspec(dllexport)
    
    EXPORT void TestDllFunc1();
    EXPORT void TestDllFunc2();
    

    TestDll.cpp内容:

    #include "TestDll.h"
    
    #include <iostream>
    
    void TestDllFunc1()
    {
    	std::cout << "TestDllFunc1" << std::endl;
    }
    
    void TestDllFunc2()
    {
    	std::cout << "TestDllFunc2" << std::endl;
    }
    

    编译后生成TestDll.libTestDll.dll文件。

    3 工程UseLib与UseDll

    均只有一个文件main.cpp用来调用库中函数,其具体内容根据的载入方式有所不同。

    四 静态载入和动态载入:

    静态载入:在程序启动时载入。
    动态载入:在程序运行过程中通过调用库函数实现载入库。

    五 静态库的载入

    因为静态库中所有数据在程序的编译链接阶段全部合并到exe文件中,静态库就只有静态载入一种载入方式。
    静态载入包括配置方式和代码方式两种方法。

    1 配置方式

    • 头文件所在目录添加到附件包含目录。(可省略)
    • .lib文件所在目录添加到附加库目录
    • .lib文件名添加到附加依赖项
    • 在代码中#include 头文件(如步骤1省略,此时需要加上头文件的路径,相对路径绝对路径都可)

    此时main.cpp内容:

    #include "TestLib.h" 
    // #include "..\\TestLib\\TestLib.h" 未设置附加包含目录时需要给出文件路径
    
    int main()
    {
    	TestLibFunc1();
    	TestLibFunc2();
    	return 0;
    }
    

    2 代码方式

    • 将头文件所在目录添加到附件包含目录(可省略)
    • 将.lib文件所在目录添加到附加库目录(可省略)
    • 在代码中#include 头文件(如步骤1省略,此时需要加上头文件的路径,相对路径绝对路径都可)
    • 使用#pragma comment(lib, "lib文件名")载入库。(如步骤2省略,此时需要加上lib文件的路劲,相对路径绝对路径都可)

    此时main.cpp内容:

    #include "TestLib.h" 
    // #include "..\\TestLib\\TestLib.h" 未设置附加包含目录时需要给出文件路径
    
    #pragma comment("lib", "TestLib.lib")
    // pragma comment("lib", "..\\Output\\TestLib.lib") 未设置附加库目录时需要给出文件路径
    
    int main()
    {
    	TestLibFunc1();
    	TestLibFunc2();
    	return 0;
    }
    

    六 动态库的载入

    动态库的实现部分在.dll文件中,动态库的载入方式包括静态载入动态载入两种方式。

    动态库的静态载入跟静态库的静态载入一样,只有一点需要注意:需要将.dll文件放到.exe文件所在目录下,exe文件运行时只会在所在目录搜寻dll文件(动态载入也一样)**,如果找不到会弹出系统错误提示框:由于找不到***, 无法继续执行代码,重新安装程序可能会解决此问题。

    在这里插入图片描述

    动态库的动态载入通过在代码中调用相关库函数实现,包括LoadLibrary()GetProcAddress()FreeLibrary()等。动态载入方式只需要使用.dll文件,头文件以及.lib文件均不需要(注意这个区别)。

    1 动态载入步骤

    • 调用LoadLibrary()载入库, 保存其函数返回值,供之后GetProcessAddress()FreeLibrary()使用。
    • 调用GetProcessAddress()搜寻所需函数,将其返回值转换成函数指针,使用该函数指针完成函数调用。
    • 调用FreeLibrary()释放库。

    此时main.cpp内容:

    #include <windows.h>
    
    typedef int(*FuncAddr)();
    
    int main()
    {
    	HINSTANCE dllDemo = LoadLibraryA("..\\Output\\TestDll.dll"); // 必须给出文件所在路径
    	if (dllDemo)
    	{
    		// 直接通过函数名称获取函数指针,需要注意,动态库的导出函数一定要使用extern "C"进行修饰
    		// 因为只有通过C编译器编译导出的符号名才直接是函数名。
    		
    		FuncAddr func1 = (FuncAddr)GetProcAddress(dllDemo, "TestDllFunc1");
    		if (func1 != nullptr) func1();
    		FuncAddr func2 = (FuncAddr)GetProcAddress(dllDemo, "TestDllFunc2");
    		if (func2 != nullptr) func2();
    		
    		FreeLibrary(dllDemo);
    	}
    	
    	return 0;
    }
    

    此外,extern "C"的相关介绍可参考:extern C的思考

    展开全文
  • Linux 内核和 Windows 内核有什么区别?

    千次阅读 多人点赞 2021-02-20 09:46:29
    对于服务器使用的操作系统基本上都是 Linux,而且内核源码也是开源的,任何人都可以下载,并增加自己的改动或功能,Linux 最大的魅力在于,全世界非常多的技术大佬为它贡献代码。 这两个操作系统各有千秋,不分...

    微信搜索「小林coding」,更多图解系、网络文章等你来撩哦!

    Windows 和 Linux 可以说是我们比较常见的两款操作系统的。

    Windows 基本占领了电脑时代的市场,商业上取得了很大成就,但是它并不开源,所以要想接触源码得加入 Windows 的开发团队中。

    对于服务器使用的操作系统基本上都是 Linux,而且内核源码也是开源的,任何人都可以下载,并增加自己的改动或功能,Linux 最大的魅力在于,全世界有非常多的技术大佬为它贡献代码。

    这两个操作系统各有千秋,不分伯仲。

    操作系统核心的东西就是内核,这次我们就来看看,Linux 内核和 Windows 内核有什么区别?


    内核

    什么是内核呢?

    计算机是由各种外部硬件设备组成的,比如内存、cpu、硬盘等,如果每个应用都要和这些硬件设备对接通信协议,那这样太累了,所以这个中间人就由内核来负责,让内核作为应用连接硬件设备的桥梁,应用程序只需关心与内核交互,不用关心硬件的细节。

    内核

    内核有哪些能力呢?

    现代操作系统,内核一般会提供 4 个基本能力:

    • 管理进程、线程,决定哪个进程、线程使用 CPU,也就是进程调度的能力;
    • 管理内存,决定内存的分配和回收,也就是内存管理的能力;
    • 管理硬件设备,为进程与硬件设备之间提供通信能力,也就是硬件通信能力;
    • 提供系统调用,如果应用程序要运行更高权限运行的服务,那么就需要有系统调用,它是用户程序与操作系统之间的接口。

    内核是怎么工作的?

    内核具有很高的权限,可以控制 cpu、内存、硬盘等硬件,而应用程序具有的权限很小,因此大多数操作系统,把内存分成了两个区域:

    • 内核空间,这个内存空间只有内核程序可以访问;
    • 用户空间,这个内存空间专门给应用程序使用;

    用户空间的代码只能访问一个局部的内存空间,而内核空间的代码可以访问所有内存空间。因此,当程序使用用户空间时,我们常说该程序在用户态执行,而当程序使内核空间时,程序则在内核态执行。

    应用程序如果需要进入内核空间,就需要通过系统调用,下面来看看系统调用的过程:

    内核程序执行在内核态,用户程序执行在用户态。当应用程序使用系统调用时,会产生一个中断。发生中断后, CPU 会中断当前在执行的用户程序,转而跳转到中断处理程序,也就是开始执行内核程序。内核处理完后,主动触发中断,把 CPU 执行权限交回给用户程序,回到用户态继续工作。


    Linux 的设计

    Linux 的开山始祖是来自一位名叫 Linus Torvalds 的芬兰小伙子,他在 1991 年用 C 语言写出了第一版的 Linux 操作系统,那年他 22 岁。

    完成第一版 Linux 后,Linux Torvalds 就在网络上发布了 Linux 内核的源代码,每个人都可以免费下载和使用。

    Linux 内核设计的理念主要有这几个点:

    • MutiTask,多任务
    • SMP,对称多处理
    • ELF,可执行文件链接格式
    • Monolithic Kernel,宏内核
    MutiTask

    MutiTask 的意思是多任务,代表着 Linux 是一个多任务的操作系统。

    多任务意味着可以有多个任务同时执行,这里的「同时」可以是并发或并行:

    • 对于单核 CPU 时,可以让每个任务执行一小段时间,时间到就切换另外一个任务,从宏观角度看,一段时间内执行了多个任务,这被称为并发。
    • 对于多核 CPU 时,多个任务可以同时被不同核心的 CPU 同时执行,这被称为并行。

    SMP

    SMP 的意思是对称多处理,代表着每个 CPU 的地位是相等的,对资源的使用权限也是相同的,多个 CPU 共享同一个内存,每个 CPU 都可以访问完整的内存和硬件资源。

    这个特点决定了 Linux 操作系统不会有某个 CPU 单独服务应用程序或内核程序,而是每个程序都可以被分配到任意一个 CPU 上被执行。

    ELF

    ELF 的意思是可执行文件链接格式,它是 Linux 操作系统中可执行文件的存储格式,你可以从下图看到它的结构:

    ELF 文件格式

    ELF 把文件分成了一个个分段,每一个段都有自己的作用,具体每个段的作用这里我就不详细说明了,感兴趣的同学可以去看《程序员的自我修养——链接、装载和库》这本书。

    另外,ELF 文件有两种索引,Program header table 中记录了「运行时」所需的段,而 Section header table 记录了二进制文件中各个「段的首地址」。

    那 ELF 文件怎么生成的呢?

    我们编写的代码,首先通过「编译器」编译成汇编代码,接着通过「汇编器」变成目标代码,也就是目标文件,最后通过「链接器」把多个目标文件以及调用的各种函数库链接起来,形成一个可执行文件,也就是 ELF 文件。

    那 ELF 文件是怎么被执行的呢?

    执行 ELF 文件的时候,会通过「装载器」把 ELF 文件装载到内存里,CPU 读取内存中的指令和数据,于是程序就被执行起来了。

    Monolithic Kernel

    Monolithic Kernel 的意思是宏内核,Linux 内核架构就是宏内核,意味着 Linux 的内核是一个完整的可执行程序,且拥有最高的权限。

    宏内核的特征是系统内核的所有模块,比如进程调度、内存管理、文件系统、设备驱动等,都运行在内核态。

    不过,Linux 也实现了动态加载内核模块的功能,例如大部分设备驱动是以可加载模块的形式存在的,与内核其他模块解藕,让驱动开发和驱动加载更为方便、灵活。

    分别为宏内核、微内核、混合内核的操作系统结构

    与宏内核相反的是微内核,微内核架构的内核只保留最基本的能力,比如进程调度、虚拟机内存、中断等,把一些应用放到了用户空间,比如驱动程序、文件系统等。这样服务与服务之间是隔离的,单个服务出现故障或者完全攻击,也不会导致整个操作系统挂掉,提高了操作系统的稳定性和可靠性。

    微内核内核功能少,可移植性高,相比宏内核有一点不好的地方在于,由于驱动程序不在内核中,而且驱动程序一般会频繁调用底层能力的,于是驱动和硬件设备交互就需要频繁切换到内核态,这样会带来性能损耗。华为的鸿蒙操作系统的内核架构就是微内核。

    还有一种内核叫混合类型内核,它的架构有点像微内核,内核里面会有一个最小版本的内核,然后其他模块会在这个基础上搭建,然后实现的时候会跟宏内核类似,也就是把整个内核做成一个完整的程序,大部分服务都在内核中,这就像是宏内核的方式包裹着一个微内核。


    Windows 设计

    当今 Windows 7、Windows 10 使用的内核叫 Windows NT,NT 全称叫 New Technology。

    下图是 Windows NT 的结构图片:

    Windows NT 的结构

    Windows 和 Linux 一样,同样支持 MutiTask 和 SMP,但不同的是,Window 的内核设计是混合型内核,在上图你可以看到内核中有一个 MicroKernel 模块,这个就是最小版本的内核,而整个内核实现是一个完整的程序,含有非常多模块。

    Windows 的可执行文件的格式与 Linux 也不同,所以这两个系统的可执行文件是不可以在对方上运行的。

    Windows 的可执行文件格式叫 PE,称为可移植执行文件,扩展名通常是.exe.dll.sys等。

    PE 的结构你可以从下图中看到,它与 ELF 结构有一点相似。

    PE 文件结构


    总结

    对于内核的架构一般有这三种类型:

    • 宏内核,包含多个模块,整个内核像一个完整的程序;
    • 微内核,有一个最小版本的内核,一些模块和服务则由用户态管理;
    • 混合内核,是宏内核和微内核的结合体,内核中抽象出了微内核的概念,也就是内核中会有一个小型的内核,其他模块就在这个基础上搭建,整个内核是个完整的程序;

    Linux 的内核设计是采用了宏内核,Window 的内核设计则是采用了混合内核。

    这两个操作系统的可执行文件格式也不一样, Linux 可执行文件格式叫作 ELF,Windows 可执行文件格式叫作 PE。


    巨人的肩膀
    1. https://en.wikipedia.org/wiki/Monolithic_kernel
    2. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format
    3. https://en.wikipedia.org/wiki/Windows_NT
    展开全文
  • 这个so中也用到opencv中的函数。 需要传递char*参数到so的函数时,也就是需要传递字符串到so的char*接收时,应该在python传入时在字符串的前面加个b,表示格式化为字节字符串类型,否则so的c++代码接收到的字符串...
    root@anhui-k55vd:~/myqtPrj#python3
    Python 3.6.9 (default, Jan 26 2021, 15:33:00) 
    [GCC 8.4.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import ctypes
    >>> so =ctypes.cdll.LoadLibrary('./libcrachrecg.so')
    >>> 
    >>> so.hello()
    hello
    4.1.0

    上面代码是以调用libcrachrecg.so为例,,,hello函数为自己生成的so动态库里的接口函数。这个so中也用到opencv库中的函数。

    需要传递char*参数到so的函数时,也就是需要传递字符串到so的char*接收时,应该在python传入时在字符串的前面加个b,表示格式化为字节字符串类型,否则so的c++代码接收到的字符串出错。在python3中正常情况下,实例化一个字符串会得到一个str实例,而不是字节字符串,详细请到这里了解更多。

    >>> import ctypes
    >>> so = ctypes.cdll.LoadLibrary("./libcrachrecg.so")
    >>> 
    >>> imgPath = b"11.jpg"
    >>> outputDir = b"./imgPath"
    >>> outputImgName = b"123"
    >>> so.testFunction(None,imgPath,outputDir,outputImgName)
    1
    >>>
    >>>

    展开全文
  • 提供解决方案-Windows下配置OpenSSL(傻瓜式教程)

    作者:翟天保Steven
    版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

    libcurl是什么?

           libcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当封装了的sockPHP 支持libcurl(允许你用不同的协议连接和沟通不同的服务器)。 libcurl当前支持http, https, ftp, gopher, telnet, dict, file, 和ldap 协议。libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传(当然你也可以使用PHP的ftp扩展), HTTP基本表单上传,代理,cookies,和用户认证

    已编译好的库

           windows.php.net - /downloads/php-sdk/deps/

           可自行选择vc版本以及x64还是x86。

    下载与编译

           1)网站:curl - Download,下载最新版本的压缩包,自己编译的好处是可以随时掌握最新库,感受前沿技术。

    图1 下载

           2)解压压缩包,进入curl-7.78.0文件夹,运行buildconf.bat,这一步是为了后续编译作预备工作。注意:错过该步骤,后续编译可能会有异常。

    图2 运行buildconf.bat

           3)在开始菜单栏,找到VS2017,以管理员身份运行x64本机工具命令提示。 

    图3 运行vs工具命令

           4)按d:到D盘(如果你的curl库在D盘),输入cd D:\api\curl\curl-7.78.0\winbuild,到达该文件夹下;输入nmake /f Makefile.vc mode=static VC=15 MACHINE=x64 DEBUG=no,开始编译64位release的静态库。若编译32位,将x64改为x86;若编译debug版本,将no改为yes;若编译动态库,将static改为dll;若为其他版本的VS,将15改为你VS版本对应值。

    图4 编译过程

           5)至此,库已经编译完成。

    图5 库所在文件夹
    图6 相关文件

           6)VS中进入项目,点击项目属性页,配置库。图7是配置include,图8是配置lib。

    图7 配置include
    图8 配置lib

           7)链接器添加附加依赖项。

    图9 添加附加依赖项
    libcurl_a.lib
    Ws2_32.lib
    Wldap32.lib
    winmm.lib
    Crypt32.lib
    Normaliz.lib

           8)因为库采用了静态编译,添加预处理器定义。

    图10 添加预处理器定义

           9)C++运行库一般选择/MD。

    图11 运行库选择

           10)至此,完成配置。

           以上就是“Windows下配置libcurl库”的方案。 

           如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!

    展开全文
  • 一、NVIDIA显卡安装程序删除(可清理出2个G空间),1、路径为:C:\Program Files\NVIDIA Corporation\Installer2和C:\NVIDIA...二、Windows自身的Search服务目录(可清理出500M左右)1、路径为:C:\ProgramData\Microsof...
  • 玩一些游戏或者使用一些软件(特别是绿色版、精简版)时是不是会提醒你缺少某些东西,例如"xxx.dll",那你可能是缺少某个运行,这里是几个常用运行
  • Windows 下使用工具: https://github.com/lucasg/Dependencies Linux 下, 可用ldd 工具查看依赖,但ldd无法查看具体的依赖关系,推荐一个好用的工具: sudo apt install pax-utils lddtree *.so 你会得到一个...
  • windows下 json的安装及使用 1.官网下载json-cpp,可以去sourceforge或github https://sourceforge.net/projects/jsoncpp/files/ 这里下载的是jsoncpp-src-0.5.0.tar.gz 2.解压文件后打开jsoncpp-src-0.5.0\...
  • Windows与Linux下动态链接的区别

    万次阅读 2021-02-27 18:32:19
    Windows的动态链接的命名格式为lib*.dll。 使用CMake创建动态链接时,会生成两个文件,比如 下面代码是在CMakeLists.txt中描述的依赖关系,在cmake构建过程中,会在上下文规定的路径中寻找“libcurldll.a”...
  • Linux的文件是.a、.so、.o。 Windows文件是.lib。
  • 很多刚接触python的新手都会遇到这样一个问题,就是在命令提示符中明明已经成功安装了所需的某个,且pip list命令列举也能找到已安装的,但是在import的时候却总是提示"importerror: no module named xxx",小...
  • 笔者计划使用OpenCV、Dlib进行一些实验,奈何环境一直跑不通,折腾了很久。网上找了一些资料,结合自己的处理结果,大致可以归纳为以下几个问题: Python安装的版本是否是64位的?如果不是去官网下载安装一波~ ...
  • 值得一提的是,Python GUI 库有很多,下面给大家罗列了常用的几种 GUI 。 wxPython wxPython 是一个跨平台的 GUI 工具集,以流行的 wxWidgets(原名 wxWindows)为基础,提供了良好的跨平台外观。简单来说,...
  • Go 编译静态 给ios,windows,android使用
  • M1芯片PD虚拟机ARM版Windows运行游戏提示缺少运行组件 ...​ 好家伙,弹了7、8个弹窗提示缺少各种dll(以前Windows知道这个提示原因是因为缺少环境运行导致的),然后就去百度找了各种解决方法
  • 一、Eigen简单介绍 Eigen是C++的第三方,可以通过C++语言进行线性代数、矩阵、向量操作等运算。 但是,在VSCode中在运行测试代码的时候,引入Eigen,如果没有事先配置,一般会出现以下问题: “Eigen/Dense: ...
  • 【Python】Dlib安装教程(Windows

    千次阅读 2021-04-24 23:17:38
    简介 Dlib是一个现代化的C++工具箱,包含机器学习算法和工具,用于在C++中创建复杂的软件来解决实际问题。 它在工业和学术界广泛使用,包括机器人...问题联系我微信号:wxhghgxj,备注来意。 参考 http://dlib.net/
  • windows下安装python cryptography报错

    千次阅读 2021-01-06 10:40:24
    1、python 安装whl文件 对于安装whl格式的文件,首先...2、下载 安装cryptography的 .whl 文件 下载地址:https://pypi.org/project/cryptography/#files 注意:下载时一定要注意两点:第一,所基于的操作系统版.
  • Windows搭建SVN实现访问远程SVN

    千次阅读 2021-01-04 11:01:21
    在公司中使用到SVN,由于电脑经历太多个用户变得繁杂不堪,重新刷机后配置相关操作 本次目的实现访问其他电脑中SVN资源,进行SVN中代码的拉取版本控制等操作,话不多说开始整。 首先在浏览器中搜索SVN找到 SVN...
  • [Windows]msvcr110.dll运行缺失问题解决方案 系统:win10 64位 问题:无法启动此程序,因为计算机中丢失 MSVCR110.dll。尝试重新安装该程序以解决此问题。 运行某些软件时,需要用到msvcr110.dll,如果当前系统内...
  • git clone --recursive https://github.com/peirick/Tesseract-OCR_for_Windows.git 下载完成后使用vs打开tesseract.sln 接下来利用vs进行编译,在编译的过程中会出现如下错误: \tesseract_4.1\src\c
  • 如果在windows环境下使用vs2019来编写python程序,不可避免的会遇见导入第三方无法被vs识别的情况,以已经安装了requests作为例子。 官方给出的解决思想: visual studio无法导入识别python第三方如requests...
  • 一 背 景 在使用window系统的过程中: 你是否遇到过在安装软件的过程中,出现各种xxxxxx.dll文件缺失的情况?!! ...你是否遇到过在安装完成一个xxxxxx.dll...微软常用运行合集(Microsoft Runtimes AIO)x86+...
  • C++ windows.h详解

    千次阅读 2021-07-18 08:46:52
    WINDOWS.H是一个最重要的头文件,它包含了其他Windows头文件,这些头文件的某些也包含了其他头文件。这些头文件中最重要的和最基本的是: WINDEF.H 基本数据类型定义。 WINNT.H 支持Unicode的类型定义。 WINBASE.H ...
  • 使用方法:vc2010运行安装失败解决方法一般来说,在控制面板中正确卸载后,是可以正常重新安装的。如果 卸载、重启、安装微软官方版本,这样做依然提示,那么你的电脑底层已经不稳定了,造成这类问题的原因很多...
  • ①下载WCP知识管理平台【WCP-免费版-v4.2.0.1】 ②没有安装mysql的Windows 64位电脑 二、WCP知识管理系统安装步骤 ①解压下载好的【WCP.free.4.2.0.1.base.Setup】内容 ②安装【Apache_OpenOffice_4.1.4_...
  • Windows下使用MingW编译Jsoncpp链接

    千次阅读 2021-05-29 16:10:19
    文章目录说明是 说明 之前在 Linx 系统里 JsonCpp ,记录了安装使用过程。 CentOS下Jsoncpp安装配置 ...Windows 上编译安装各种 c/c++ 开源软件/,通常推荐的都是 Visual Studio 软件(MSVC 编译器),更多
  • Windows下编译Android-ijkplayer文件

    千次阅读 2021-12-06 10:22:14
    从零开始编译android-ijkplayer的文件
  • Windows终端程序是一款新式、快速、高效、强大且高效的终端应用程序,适用于命令行工具和命令提示符,PowerShell和 WSL等Shell用户。主要功能包括多个选项卡、窗格、Unicode、和UTF-8字符支持,GPU 加速文本渲染引擎...
  • WindowsCMake编译JsonCpp及配置(适合新手)

    千次阅读 多人点赞 2021-09-13 11:31:18
    提供解决方案-WindowsCMake编译jsoncpp

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 950,725
精华内容 380,290
关键字:

windows库有什么用