8 ly1390811049

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 6w+

无法解析的外部符号 QString::fromStdWString

一般的代码里(或者叫默认)都设置wchar_t做为内置类型,但现在有两个静态库,一个要求wchar_t为内置类型,另一个要求不将wchar_t做为内置类型,否则就会出现errorLNK2019:无法解析的外部符那么现在的情况就是:实质上其中一个lib中的函数以wchar_t*作为字符串,另外一个lib中的函数以unsignedshort*作为字符串。如果不重新编译lib,解决办法就是改头文件,现在两个lib的头文件里的函数声明,都是声明用wchar_t*作字符串,但实质上其中一个lib导出...

2020-10-17 11:22:53

std::exception的使用

std::exception:标准异常类的基类,其类的声明在头文件<exception>中。所有标准库的异常类均继承于此类,因此通过引用类型可以捕获所有标准异常。std::exception类定义了无参构造函数、拷贝构造函数、拷贝赋值运算符、一个虚析构函数和一个名为what的无参虚成员。其中what函数返回一个const char*,该指针指向一个以null结尾的字符数组,并且确保不会抛出任何异常,该字符串的目的是提供关于异常的一些文本信息。除析构函数外,其它函数均通过关键字noexcept

2020-09-24 23:29:03

C++11中头文件cmath

<math.h>是C标准函数库中的头文件。在C++中一般用<cmath>。此头文件中声明了一系列函数来计算常见的数学运算和变换:std::abs: 计算绝对值,包括整数类型;std::fabs: 计算绝对值,不包括整数类型;std::fma(x,y,z):x*y+z;std::sin: 正弦;std::asin: 反正弦;std::sinh: 双曲正弦;std::asinh: 双曲反正弦;std::cos: 余弦;std::acos: 反正弦;

2020-09-24 23:26:39

C++11中的std::tuple

std::tuple是类似pair的模板。每个pair的成员类型都不相同,但每个pair都恰好有两个成员。不同std::tuple类型的成员类型也不相同,但一个std::tuple可以有任意数量的成员。每个确定的std::tuple类型的成员数目是固定的,但一个std::tuple类型的成员数目可以与另一个std::tuple类型不同。但我们希望将一些数据组合成单一对象,但又不想麻烦地定义一个新数据结构来表示这些数据时,std::tuple是非常有用的。我们可以将std::tuple看作一个”快速而随意

2020-09-21 21:39:52

C++11中的正则表达式

正则表达式(regular expression)是计算机科学中的一个概念,又称规则表达式,通常简写为regex、regexp、RE、regexps、regexes、regexen。正则表达式是一种文本模式。正则表达式是强大、便捷、高效的文本处理工具。正则表达式本身,加上如同一门袖珍编程语言的通用模式表示法(general pattern notation),赋予使用者描述和分析文本的能力。配合上特定工具提供的额外支持,正则表达式能够添加、删除、分离、叠加、插入和修整各种类型的文本和数据。完整的正则

2020-09-21 21:29:13

Lambda表达式

Lambda表达式语法:[capture ] ( params ) mutable exception attribute -> return-type { body }其中capture为定义外部变量是否可见(捕获),若为空,则表示不捕获所有外部变量,即所有外部变量均不可访问,= 表示所有外部变量均以值的形式捕获,在body中访问外部变量时,访问的是外部变量的一个副本,类似函数的值传递,因此在body中对外部变量的修改均不影响外部变量原来的值。& 表示以引用的形式捕获,后面加上需要捕获的

2020-09-21 21:27:27

C++11中std::function和std::bind

std::function类模版std::function是一种通用、多态的函数封装。std::function的实例可以对任何可以调用的目标实体进行存储、复制、和调用操作,这些目标实体包括普通函数、Lambda表达式、函数指针、以及其它函数对象等。通过std::function对C++中各种可调用实体(普通函数、Lambda表达式、函数指针、以及其它函数对象等)的封装,形成一个新的可调用的std::function对象,让我们不再纠结那么多的可调用实体。std::function实现了一套类型

2020-09-20 22:51:19

C++11中decltype

decltype与auto关键字一样,用于进行编译时类型推导,不过它与auto是有一些区别的。decltype的类型推导并不是像auto一样是从变量声明的初始化表达式获得变量的类型,而是总是以一个普通表达式作为参数,返回该表达式的类型,而且decltype并不会对表达式进行求值。decltype关键字用于查询表达式的类型,并不会对表达式进行求值。decltype的作用是获得一个变量或表达式的类型。decltype 不会执行表达式而auto会,decltype仅仅推论一下表达式的类型。对于declty

2020-09-20 22:25:30

C++中typeid的使用

引用。type_info的name成员函数返回C-style的字符串。如果表达式的类型是类类型且至少包含有一个虚函数,则typeid操作符返回表达式的动态类型,需要在运行时计算;否则,typeid操作符返回表达式的静态类型,在编译时就可以计算。使用typeid时应注意:(1)、typeid运算符允许在运行时确定对象的类型;(2)、typeid的结果是const type_info&;(3)、typeid运算符在应用于多态类类型的左值时执行运行时检查,其中对象的实际类型不能由提供的

2020-09-20 17:10:58

C++中friend的使用

友元函数并不能看做是类的成员函数,它只是个被声明为类友元的普通函数:(1)、在类里声明一个普通函数,在前面加上friend修饰,那么这个函数就成了该类的友元,可以访问该类的一切成员。(2)、一个普通函数可以是多个类的友元函数。(3)、一个类的成员函数也可以是另一个类的友元,从而可以使得一个类的成员函数可以操作另一个类的数据成员。(4)、整个类也可以是另一个类的友元,该友元也可以称作为友类。友类的每个成员函数都可以访问另一个类的所有成员。友元声明中声明的函数被视为已使用extern关键字声

2020-09-20 16:57:39

C++中函数指针的使用

函数指针是一个指向函数的指针,函数指针表示一个函数的入口地址。指针是变量,所以函数指针也是变量,因此可以使用变量定义的方式来定义函数指针。只是这个指针它不像普通的指针指向一个变量,而它指向的是一个函数,也就是它存储的是一个函数的地址。 在C中,一个函数指针可以多次赋值。取地址符号是可选的,却是推荐使用的。在C++中,对于赋值必须要加”&”,而且还必须在此之前已经定义好了一个类实例,取地址符号要操作于这个类实例的对应的函数成员上。在使用成员函数的指针调用成员函数时,必须要加类实例的...

2020-09-20 16:53:29

Google C++ 风格指南内容整理

现在很多公司进行C++开发都要求按照Google C++风格。在这个网站http://zh-google-styleguide.readthedocs.org/en/latest/contents/ 有人已经把其翻译成中文。为了便于以后查看,下面的内容完全是来自于这个网站,只是把多个网页的内容整理放在了一起。1.头文件:通常每一个.cc文件都有一个对应的.h文件。也有一些常见例外,如单元测试代码和只包含main()函数的.cc文件。#define保护:所有头文件都应该使用#...

2020-09-20 16:20:24

编写高质量代码改善C++程序的150个建议

第一部分 语法篇第1章从C继承而来的建议0:不用让main函数返回void main函数的返回类型是int,不是void或其它类型。建议1:区分0的4种面孔(1)、整型0;(2)、空指针NULL,指针与int类型所占空间是一样的,都是32位;(3)、字符串结束标志’\0’;(4)、逻辑FALSE/false,FALSE/TRUE是int类型,而false/true是bool类型。建议2:避免那些由运算符引发的混乱 不要...

2020-09-20 15:48:05

DLL动态库导出C++类

使用纯C语言方式头文件//在DLL的工程中定义 DLL_EXPORTS宏(表示导出) 一般直接加到项目配置的 预处理器定义宏中#ifdef DLL_EXPORTS#define DLLAPI __declspec(dllexport)#else#define DLLAPI _declspec(dllimport)#endif//需要导出的类class CTest{public: int add(int a, int b, int c); void relea

2020-09-17 00:57:39

x64汇编

x64是AMD64与Intel64的合称,是指与现有x86兼容的64位CPU。在64位系统中,内存地址为64位。x64为环境下寄存器有较大的变化。x64系统通用寄存器的名称,第1个字母从"E"改为"R"(例如"RAX"), 大小扩展到64位,数量增加了8个(R8~R15), 扩充了8个128位XMM寄存器(在64位程序中,XMM寄存器经常被用来优化代码)。64位寄存器与x86下的32位寄存器兼容,例如RAX(64位)、EAX(32位)、AX(低16位)、AL(低8位)、AH(8-15位)。x64新扩展的

2020-09-15 00:27:15

IDA的使用

简介ida可以分析的文件格式也非常多 包括windows下的pe格式文件(.exe .dll .sys)linux 下的elf文件(.elf .so )mac系统的常见文件格式,以及一些不常见到系统的文件格式。ida的功能强大,对于一般的无壳保护,无混淆代码的程序ida能直接反汇编出位代码(F5快捷键),在一定程度上减少了逆向分析的难度和门槛。ida分为32位和64位,在进行逆向分析时选择32-bit IDA分析32位程序,64-bit IDA 分析64位程序。一般来说直接ok打开,ida会帮你

2020-09-12 00:57:28

编译QT源码

下载QT源码1.离线安装安装的时候勾选Sources2.直接下载源码例如5.12.0的源码下载地址:qt-everywhere-src-5.12.02. 编译工具下载ActivePerlActivePerl下载地址:默认安装时会添加ActivePerl到环境变量。测试添加是否成功:Python下载Python,添加Python到环境变量。测试添加是否成功:RubyRuby下载地址:RubyInstaller for Windows安装时勾选添加到环境变量的选项:

2020-09-04 00:45:19

cmder

简介官网 https://cmder.net/进入官网以后,有mini版和完整版,建议完整版,完整版功能更齐全,还可以使用git,下载好解压文件包以后就可以使用。设置环境变量添加cmder到邮件菜单Cmder.exe /REGISTER ALL解决中文乱码问题Settings->Startup->Environment 添加set LANG=zh_CN.UTF-8set LC_ALL=zh_CN.utf8常用命令创建文件夹mkdir删除文件夹rmdir

2020-08-31 23:24:13

windows的消息机制

一、 什么是消息在解释什么是消息之前,我们先讨论一下程序的执行机制问题。大体上说,程序按照执行机制可以分为两类:第一类是过程驱动。比如我们最早接触编程时写的C程序,又或者单片机程序。这类程序往往预先已经设定好了执行流程,我们执行时只是按部就班的执行;第二类是事件驱动。事件,相信大家都能够理解。每个事件的发生都是随机的,每个事件都会有发生的时刻,类似生活中的事件。程序中的事件也会有自己的触发点,事件驱动程序就是事先编写好了针对每个事件的处理流程。在Windows的操作系统中,消息就是Windows中的

2020-08-09 15:57:55

植物大战僵尸分析

查找产生僵尸的CALL使用CE搜索地图上僵尸的数量,找到保存僵尸数量的地址,然后CE附件找到增加僵尸数量的语句,因为产生僵尸后一定会增加僵尸的数量。CE附加找访问该地址的代码使用OD在 0043678F - 01 46 10 - add [esi+10],eax 下断点产生僵尸时,断下,查看栈在反汇编窗口中查看第一个CALL,返回这个CALL没有参数,产生僵尸的CA...

2020-04-07 00:20:24

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享精英
    分享精英
    成功上传11个资源即可获取