C++
文章平均质量分 58
Bird鸟人
这个作者很懒,什么都没留下…
展开
-
C++指针使用问题记录
nullptr是一个关键之,c++11引入的,无脑建议将指针初始化为nullptr,因为nullptr可以代表int*,double*,void*等任何含义。将指针初始化为NULL不是很好,除非你的C++版本没有到11。NULL是c++98的,其实就是define 0。一、指针变量建议初始化为nullptr。原创 2023-03-10 12:31:18 · 99 阅读 · 0 评论 -
C++ for循环警告:Missing reference in range-for with non trivial type (QString)
在qtcreator 中写了一个for循环,提示警告:Missing reference in range-for with non trivial type (QString)原创 2023-03-06 15:01:27 · 794 阅读 · 0 评论 -
C++ const用法报错记录
const修饰的变量,无法调用自身的非const修饰的成员函数原创 2023-01-30 15:00:29 · 2588 阅读 · 0 评论 -
C++ 头文件使用规范
C++头文件应该仅仅包含其需要用到的内容,不应包含任何无用的内容原创 2023-01-08 13:09:41 · 745 阅读 · 0 评论 -
C++ 指针传参,函数内修改指针不影响实参
C++ 按指针传值的方式当我们使用指针传参的时候,会从实参拷贝一份对象到形参,二者是不同的指针,但是指向同一块地址。原创 2022-12-26 00:28:01 · 1154 阅读 · 0 评论 -
C++ 虚函数、纯虚函数、重载、重写的区别
C++中用virtual来表示虚函数Base.h头文件class Base{ virtual void SetA(int n); //虚函数 virtual void SetB(int n) = 0; //纯虚函数,用virtual和末尾=0来表示 virtual void SetC(int n) const = 0; //纯虚函数,const代表该函数不得修改成员变量的值public: int a = 1; int b = 2; int c = 3;原创 2020-12-24 16:08:19 · 5597 阅读 · 2 评论 -
C++ :: ->和.的区别
双冒号 ::作用域运算符双冒号 ::主要是两个1.命名空间作用域,用来注明所使用的类、函数属于哪一个命名空间的std::cout << "Hello World" << std::endl;std是命名空间,cout是一个类2.类作用域,用来标明类的变量、函数Human::setName(char* name);这个是声明类方法...原创 2020-03-29 22:39:37 · 190 阅读 · 0 评论 -
C++ 错误 LNK1181 无法打开输入文件“xxxx.lib”
今天编译CefSharp源代码,报错如下错误 LNK1181 无法打开输入文件“libcef_dll_wrapper.lib” 解决方案:直接找到libcef_dll_wrapper.lib的所在路径,并让对应的项目引用该lib,重新编译即可如何引用?项目-右键属性->连接器->常规->附加库目录->编辑点击上方的添...原创 2020-03-19 21:09:18 · 39909 阅读 · 3 评论 -
C/C++ 程序编译过程详解
C/C++程序编译流程:预处理->编译->汇编->链接具体的就是:源代码(source coprede)→预处理器(processor)→编译器(compiler)→汇编程序(assembler)→目标程序(object code)→链接器(Linker)→可执行程序(executables)C语言在linux下的基本流程如图:1. 预处理预处理相当于...原创 2018-12-10 20:07:50 · 2914 阅读 · 0 评论 -
C++ 连接上期所CTP交易行情接口
CTP相关接口和文档下载:http://www.simnow.com.cn/static/softwareDownload.action 相关库文件以及头文件如下: 遇到的问题:1.运行直接退出了,是因为没有包含两个dll文件,以为只需要引入lib即可。2.OnFrontConnected 这个回调函数一直进不去,花了很长时间,发现是因为写的是控制台程序...原创 2018-12-11 12:35:26 · 3365 阅读 · 1 评论 -
报错C1189 #error: "No Target Architecture"
根本原因:是因为单独包含了一些windows.h已经包含了的头文件如"fileapi.h","WinUser.h",但是却没有包含windows.h 或者先包含了如"fileapi.h","WinUser.h",后包含windows.h,顺序不对 先说解决方案:在代码中 加入include “windows.h” 即可,或者调整顺序,把winows.h放在前面 网上的解决方案...原创 2018-12-22 10:37:20 · 27619 阅读 · 2 评论 -
Linux 下编写C++
常用操作1. g++ test.cpp -o ttt ttt 代表编译后生成的文件名, ./ttt即可运行2.调试先安装gdb查看是否安装 rpm -qa |grep gdp安装 yum install gdb 遇到的问题:一.gcc: error trying to exec 'cc1plus': execvp: No such file or dir...原创 2018-12-25 19:22:00 · 2047 阅读 · 0 评论 -
Linux C++使用libcurl访问http编程
curl 和libcurl 的区别curl是命令行工具,可以通过shell或脚本来运行curl。curl底层所使用的库是libcurl。 libcurl是一个库,通常与别的程序绑定在一起使用,如命令行工具curl就是封装了libcurl库,libcurl源代码编译完成后会生成curl的可执行文件 下载安装libcurl库首先看下自己有没有安装curl,执行了下curl www....原创 2019-01-17 20:06:15 · 8465 阅读 · 0 评论 -
Windows 下使用libcurl的问题记录
上一篇文章写了libcurl在llinux下的使用以及编写程序的步骤:https://blog.csdn.net/wcc27857285/article/details/86529034 今天尝试了下在Windows下使用libcurl开发,使用的是VS2017,不得不说在windows下遇到了很大的困难,几乎是花了一天的时间才解决一.下载进入官网的下载页面:https://cur...原创 2019-01-18 15:36:08 · 5761 阅读 · 1 评论 -
Linux C++ 语法常见错误
error: 'srand' is not a member of 'std'#include <cstdlib> error: ‘str’ does not name a typeauto str=_vector.at(0);g++编译器只支持c++98,而C++98不支持 auto,原创 2019-01-21 20:11:59 · 762 阅读 · 0 评论 -
VS中C++常见编译错误
一.在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h"”? 出现这个问题的原因是:VS为了加快编译速度,就是编译器首先编译某个文件(称为预编译头文件),然后将这个编译结果保存起来,之后如果有其他源文件include了这个“预编译头文件”的时候,则自动从这个编译结果提取需要的信息进行编译。在这里,stdafx.h就是预编译头文件,所以...原创 2019-02-01 13:53:23 · 1381 阅读 · 0 评论 -
Inspection of unmanaged type requires unmanaged debugging to be enabled需要启用非托管调试,请将调试器类型设置为“mixed”
在调试代码时,查看C++变量 提示如下:Inspection of unmanaged type 'xxx**' requires unmanaged debugging to be enabled. Please set the debugger type to 'Mixed' and try again检查非托管类型“xxx**”需要启用非托管调试。请将调试器类型设置为“mix...原创 2019-06-12 10:00:10 · 2636 阅读 · 1 评论 -
Win32 Console Application、Win32 Application、MFC三者之间的联系和区别
转自:http://blog.csdn.net/c_base_jin/article/details/52304845在windows编程中,我们或多或少都听说这三个名称,分别是Win32 Console Application、Win32 Application、MFC。估计也有很多人,对此感到疑惑,今天从网络上收集了资料,并整理归纳,完整的介绍三者内在联系。Win32 Co转载 2017-09-06 17:12:08 · 671 阅读 · 0 评论 -
C++ 字符串、string、char *、char[]、const char*的转换和区别
1.字符串字符串本质就是一串字符,在C++中大家想到字符串往往第一反应是std::string(后面简称string)字符串得从C语言说起,string其实是个类,C语言是没有class的,所以C语言的字符串其实就是字符数组,也就是char [ ] ,例如:char str[10]; //定义了一个有十个元素的数组,元素类型为字符charchar str[10] = {"hel...原创 2018-12-06 15:08:59 · 17552 阅读 · 0 评论 -
C++ 基础知识(二)
1.复制构造函数编译器会默认提供复制拷贝函数,但是也可以显式的定义,形参是本类对象的引用class point{private : int a; int b;public: point(int x,int y) { a=x; b=y; std::cout<<"调用构造函数"<<s...原创 2018-12-09 00:00:24 · 716 阅读 · 0 评论 -
C++ 变量、常量、符号常量
变量:int i = 0; // i 是变量i=5; //i 可以修改变量就是程序内一个内存位置的符号名,在该内存位置可以保存数据,并可以通过符号名对该内存地址存放的数据进行访问。变量的值可以修改,是可变的,但在某个确定的时刻,变量的值是确定的,并一直保持到下次被修改之前。常量:int a=10; //a 是变量, 10 是常量...原创 2018-12-08 15:13:52 · 6904 阅读 · 2 评论 -
C++ 字符串转换
在字符串前加一个L作用: 如 L"我的字符串" 表示将ANSI字符串转换成unicode的字符串,就是每个字符占用两个字节。 strlen("asd") = 3; strlen(L"asd") = 6; LPCTSTR不是一个类型,而是两种类型:LPCSTR和LPCWSTR其中之一。会根据你当前程序是否使用UNICODE字符集来变成那二者之一。如果原创 2017-08-13 20:42:40 · 1918 阅读 · 0 评论 -
C++ std::vector指定位置插入
使用vector,必须加上:#include <vector> 1.初始化vector,一般有这几种方式: std::vector<std::wstring> v1; //创建一个空的wstring类型的vector std::vector<std::wstring> v2(3, L"c"); ...原创 2017-09-05 19:31:47 · 75104 阅读 · 7 评论 -
C++ fstream文件操作
代码如下:#include "stdafx.h"#include#include //必须要加int main(){ std::string str_data = "xxxxxxxxxxxx"; std::ofstream ofs("D:\\out.txt"); ofs ofs.close(); }补充:原创 2017-08-30 14:31:25 · 880 阅读 · 0 评论 -
找不到windows.h源文件
今天在网上下了个程序,用VS2017打开,提示找不到源文件window.h,因为引用了这个头文件,但是却找不到解决方案: 右侧解决方案,选择项目->右键->属性->常规里面Windows SDK版本改成当前系统的SDK版本,我这边是10.0.15063.0原创 2017-08-19 17:38:49 · 37048 阅读 · 0 评论 -
C++ Socket 实例
服务端:#include "stdafx.h"#include #include #include #pragma comment(lib,"ws2_32.lib")int main(){ WSADATA wsdata = {0}; WSAStartup(MAKEWORD(2, 2), &wsdata); //Winsock服务的初始化,这句话一定要放在前面 SOCKE原创 2017-08-08 19:03:28 · 367 阅读 · 1 评论 -
using namespace std 和 include <string>的区别
using namespace std;int main(){ std::string dd = "ddd";//会报错namespace "std" has no member "string",因为没有引入string库}#includeint main(){ string dd = "ddd"; //虽然编译单元包含了string,但是这个st原创 2017-08-30 12:37:28 · 3087 阅读 · 0 评论 -
C++ UNREFERENCED_PARAMETER函数的作用
新建win32 application程序,会有这样一段代码int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine,原创 2017-09-08 15:41:25 · 8033 阅读 · 0 评论 -
C++ #define,typedef,using用法区别
一.#define#define 是宏定义命令,宏定义就是将一个标识符定义为一个字符串,源程序中的该标识符均以指定的字符串来代替,是预编译命令,因此会在预编译阶段被执行1.无参宏定义无参宏的宏名后不带参数其定义的一般形式为:#define 标识符 字符串 其中的“#”表示这是一条预处理命令。凡是以“#”开头的均为预处理命令。“define”为宏定义命令。“标识符”为所定...原创 2018-12-03 17:23:16 · 6033 阅读 · 1 评论 -
VS C++/ClI调用C++ 外部Dll无法查看变量值
C#项目调用C++/ClI项目,C++/ClI项目又引用了外部C++ dll时C++/CLI代码中在调试时无法查看native 变量的值解决方法:C#项目右键属性-->Debug-->勾选 enable native code debugging...原创 2018-11-28 18:28:22 · 1439 阅读 · 0 评论 -
C++ const修饰不同类型的用法
const取自constant的缩写,本意是不变的,不易改变的意思 一.修饰普通变量const int a = 7;int b = a; //正确a = 8; // 错误,不能赋值 二.修饰指针int b = 500;const int* a = &b; int const *a =...原创 2018-12-01 12:24:18 · 1435 阅读 · 0 评论 -
C++ 函数模板&类模板详解
在 C++ 中,模板分为函数模板和类模板两种。函数模板是用于生成函数的,类模板则是用于生成类的。函数模板&模板函数 类模板&模板类 必须区分概念函数模板是模板,模板函数时具体的函数类模板是模板,模板类时具体的类由函数模板实例化而得到的函数称为模板函数由类模板实例化得到的类叫模板类 一.函数模板函数模板的基本写法为:template <typ...原创 2018-12-02 16:32:37 · 10127 阅读 · 5 评论 -
C++ 引用Lib和Dll的方法总结
1.什么是静态连接库LIB,什么是动态链接库 DLL 静态链接库与动态链接库都是共享代码的方式,都是二进制格式的 2.静态链接库LIB和动态链接库DLL的区别若采用静态链接库,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。而动态动态链接库则不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。另一...原创 2018-11-29 10:16:25 · 33874 阅读 · 0 评论 -
C++ 基础知识(一)
1.#inclue#inclue<iostream>中的 # 是预处理标志,要最先处理,即在编译器编译代码之前运行#inclue<> 和 #include “” 的区别:< >引用的是编译器的类库路径里面的头文件" "引用的是你程序目录的相对路径中的头文件< >一般是引用自带的一些头文件:stdio.h、conio.h、string....原创 2017-11-15 09:56:34 · 315 阅读 · 0 评论 -
C++ std::map用法简介
#include "map" //引入头文件初始化:std::map <int, std::string> _map1; //初始化 //c++11中引入的,可以直接在初始化时赋值 std::map <int, std::string> _map = { {0,"11"}, {2,"22"}, {3,"33"}, };插入:// 如果已经存在原创 2017-10-19 20:38:49 · 53091 阅读 · 0 评论 -
C#调用C++ DLL动态库的两种方式
第一种方式:C++导出函数, c#dllimport 的方式在很多地方都看到过,如[dllimport “user32.dll”]这种代码,调用windows API,就是通过这种方式实现 例子:新建C++项目,创建动态链接库(DLL),然后添加头文件textdll.h #pragma once#ifdef A_EXPORTS#define DLL_API __dec...原创 2017-10-19 16:00:07 · 3545 阅读 · 0 评论 -
#pragma 预处理指令详解
#pragma 预处理指令详解 在所有的预处理指令中,#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。转载 2017-08-08 14:24:55 · 247 阅读 · 0 评论