C/C++
文章平均质量分 68
沈万三gz
浮躁一分,到处遍招尤悔因循二字,从来误尽英雄。
展开
-
LINK : fatal error LNK1104: 无法打开文件“ucrtd.lib” 解决方法 Visual Studio
VS2017 -error LNK1104 无法打开文件“ucrtd.lib”是因为lib文件没有包含在 项目属性页 -> VC++目录 -> 库目录下的原因。如下面图的位置:在磁盘里找到ucrtd.lib文件的存放位置 ,我的是在这里:把存放路径添加到库目录....原创 2021-07-14 09:15:58 · 1606 阅读 · 2 评论 -
Swing开发错误:Access restriction: The type JFrame is not accessible due to restriction on required libra
Swing开发错误:Access restriction: The type JFrame is not accessible due to restriction on required library C:\Program Files\Java\jre1.8.0_181\lib\rt.jar错误原因:jre配置错误;解决方案:1. 项目右键 - Build Path - Configure Build Path ;2. 选择“Libraries”面板 ,然后双击"JRE Syste.转载 2021-05-10 16:49:35 · 516 阅读 · 1 评论 -
vs学习7
VisualStudio提供了两类容器,帮助您有效地管理开发工作所需的项,如引用、数据连接、文件夹和文件。这两类容器分别叫做解决方案和项目。此外,VisualStudio还提供解决方案文件夹,用于将相关的项目组织成项目组,然后对这些项目组执行操作。作为查看和管理这些容器及其关联项的界面,“解决方案资源管理器”是集成开发环境(IDE)的一部分。容器:解决方案和项目解决方案和项目包...转载 2020-04-16 19:53:57 · 368 阅读 · 0 评论 -
warning : 无法找到 v141 的生成工具。安装 v141 可使用 v141 生成工具进行生成。
warning : 无法找到 v141 的生成工具。安装 v141 可使用 v141 生成工具进行生成。在C++项目上 右击 =》 属性 =》转载 2020-04-15 17:59:57 · 5180 阅读 · 0 评论 -
vs2015&C++学习笔记5
原创 2020-03-21 23:26:27 · 205 阅读 · 0 评论 -
vs2015&C++学习笔记4
C++11之前主要有以下几种初始化方式: //小括号初始化 string str("hello"); //等号初始化 string str="hello"; //POD对象与POD数组列表初始化 struct Studnet { char* name; int age; }; ...转载 2020-03-21 22:59:51 · 152 阅读 · 0 评论 -
vs2015&C++学习笔记1
从上面的++i与i++的实现看出,在C++中,对于非内建类型来说,前自增运算(++i)返回的是对象的引用,而后自增运算返回的是对象,返回对象将造成成拷贝构造函数更多的调用,所以++i的效率要高于i++。但是对于内建类型,i++与++i的效率几乎没有区别(因为内建类型没有拷贝构造函数)。于此类似的是i--和--i。(注:因为后自增运算返回的是const型对象因此后自...转载 2020-03-21 11:59:42 · 358 阅读 · 0 评论 -
vs C++调试错误集1
1.vs c++ 警告提示:warning C4013: “gets”未定义;假设外部返回 intgets函数出现的警告 与 我之前记录的一篇scanf函数报错的文章类似!函数gets是ANSI C中的函数,其在读取时不检查边界,所以可能造成内存访问越界。例如分配了5个字节的空间,但读入了10个字节。gets函数 在 ISO/IEC 9899 2011(C11)标准中已被移除!当然...转载 2020-01-09 11:59:35 · 2978 阅读 · 1 评论 -
VS C++常见问题集锦
1.在Vs中编C出现这两个错误是什么原因 ?错误1:error LNK2005: _main 已经在 *** 中定义错误1:error LNK2005: _main 已经在 ***中定义错误2:error LNK1169: 找到一个或多个多重定义的符号解决方案:一个工程里是可以包含多个.c 或 .cpp文件的,但只能有一个定义main函数。2. 微软网站对...转载 2020-01-09 11:59:26 · 396 阅读 · 0 评论 -
Visual Studio 新建及运行C++程序步骤
visual studio 如何新建c++程序新建步骤1、菜单栏:文件 –> 新建 –>项目,如下图所示:2、接着出现下图,先更改名称和项目地址,接着双击“Windows桌面向导”。3、Windows桌面向导的设置如下,选择空项目,预编译标头,点击“确定”。4、接着进入项目页面,依次点击:“源文件 –> 添加 –> 新建项”创建源文件,并在源文件中写代码。...转载 2019-12-24 22:43:31 · 5194 阅读 · 0 评论 -
工作记录--makefile报错:makefile:2: *** missing separator. Stop.
makefile:2: *** missing separator. Stop.错误:makefile内容: *************** main.o :main.c gcc -g -c main.c *************** make 回车 makefile:2: *** missing转载 2014-06-13 16:56:35 · 1686 阅读 · 0 评论 -
工作记录----makefile必备语法
1.编译和链接源文件首先会生成中间目标文件,再由中间目标文件生成执行文件。在编译时,编译器只检测程序语法,和函数、变量是否被声明。如果函数未被声明,编译器会给出一个警告,但可以生成Object File。而在链接程序时,链接器会在所有的Object File中找寻函数的实现,如果找不到,那到就会报链接错误码(Linker Error),在VC下,这种错误一般是:Link 2001错误,意思说是转载 2014-06-12 14:48:47 · 938 阅读 · 0 评论 -
工作记录--makefile 伪目标
伪目标是这样一个目标:它不代表一个真正的文件名,在执行make时可以指定这个目标来执行其所在规则定义的命令,有时我们也可以将一个伪目标称为标签。使用伪目标有两点原因:1. 避免在我们的Makefile中定义的只执行命令的的目标(此目标的目的为了执行执行一系列命令,而不需要创建这个目标)和工作目录下的实际文件出现名字冲突。2. 提高执行make时的效率,特别是对于一个大型的工程来说,编译的效率也许你转载 2014-06-16 09:33:07 · 617 阅读 · 0 评论 -
程序员面试知识点
linux和os:netstat tcpdump ipcs ipcrm (如果这四个命令没听说过或者不能熟练使用,基本上可以回家,通过的概率较小,这四个命令的熟练掌握程度基本上能体现面试者实际开发和调试程序的经验)cpu 内存 硬盘 等等与系统性能调试相关的命令必须熟练掌握,设置修改权限 tcp网络状态查看 各进程状态 抓包相关等相关命令 必须熟练掌握awk sed需掌握共享内存的使用实现转载 2014-07-07 12:47:48 · 1357 阅读 · 0 评论 -
工作记录--make clean
make clean仅仅是清除之前编译的可执行文件及配置文件。 而make distclean要清除所有生成的文件。Makefile在符合GNU Makefiel惯例的Makefile中,包含了一些基本的预先定义的操作:make根据Makefile编译源代码,连接,生成目标文件,可执行文件。make clean清除上次的make命令所产生的object文件(后缀为“.o转载 2014-06-16 08:32:50 · 1038 阅读 · 0 评论 -
Linux下Makefile的automake生成全攻略
原文:http://www.yesky.com/120/1865620.shtml转载 2014-06-19 10:07:05 · 688 阅读 · 0 评论 -
工作记录--makefile语法000
make命令会自动读取当前目录下的Makefile文件[33],完成相应的编译步骤。Makefile由一组规则(Rule)组成,每条规则的格式是:target ... : prerequisites ... command1 command2 ...例如:main: main.o stack.o maze.o gcc main.o stack.o maze.o -o main转载 2014-06-16 09:46:02 · 677 阅读 · 0 评论 -
工作记录---pcap_pkthdr结构详解
原文:http://blog.sina.com.cn/s/blog_94d26ea60100w3kt.html转载 2014-06-19 17:46:57 · 5419 阅读 · 0 评论 -
linux编程中的socket编程--server端ip0.0.0.0问题
1.INADDR_ANY就是指定地址为0.0.0.0的地址,这个地址事实上表示不确定地址,或“所有地址”、“任意地址”。 一般来说,在各个系统中均定义成为0值。2.一般情况下,如果你要建立网络服务器应用程序,则你要通知服务器操作系统:请在某地址 xxx.xxx.xxx.xxx上的某端口 yyyy上进行侦听,并且把侦听到的数据包发送给我。这个过程,你是通过bind()系统调用完成的。——转载 2014-08-19 10:46:37 · 4248 阅读 · 0 评论 -
GDB 调试演示
作为内置和最常用的调试器,GDB 显然有着无可辩驳的地位。熟练使用 GDB,就好像所有 Linux 下的开发人员建议你用 VIM 一样,是个很 "奇怪" 的情节。测试用源代码。#include int test(int a, int b){ int c = a + b; return c;}int main(int argc, char* argv[]){转载 2014-08-18 15:52:53 · 595 阅读 · 0 评论 -
linux中socket编程的函数解析
1.为使网络程序具有可移植性,使同样的C代码在大端和小端计算机上编译后都能正常运行,可以调用以下库函数做网络字节序和主机字节序的转换。#include uint32_t htonl(uint32_t hostlong);uint16_t htons(uint16_t hostshort);uint32_t ntohl(uint32_t netlong);uint16_t转载 2014-08-19 14:14:20 · 692 阅读 · 0 评论 -
c语言中调用shell脚本
C程序调用shell脚本共有三种方式:system()、popen()、exec系列函数转载 2014-08-21 09:06:11 · 3102 阅读 · 0 评论 -
linux编程--基本数据类型size_t
1.在C++中,设计 size_t 就是为了适应多个平台的 。size_t的引入增强了程序在不同平台上的可移植性。size_t是针对系统定制的一种数据类型,一般是整型,因为C/C++标准只定义一最低的位数,而不是必需的固定位数。而且在内存里,对数的高位对齐存储还是低位对齐存储各系统都不一样。为了提高代码的可移植性,就有必要定义这样的数据类型。一般这种类型都会定义到它具体占几位内存等。当然,有些是编转载 2014-09-05 10:48:59 · 2965 阅读 · 0 评论 -
linux编程--typedef
1.5. typedef & 复杂的变量声明在编程实践中,尤其是看别人代码的时候,常常会遇到比较复杂的变量声明,使用typedef作简化自有其价值,比如:下面是三个变量的声明,我想使用typdef分别给它们定义一个别名,请问该如何做?>1:int *(*a[5])(int, char*);>2:void (*b[10]) (voi转载 2014-09-05 11:27:20 · 814 阅读 · 0 评论 -
linux编程--gdb
1.: 8多个源文件,gdb时如何在指定的某个文件中设置断点?谢谢[复制链接]转载 2014-09-05 11:35:34 · 502 阅读 · 0 评论 -
linux基础命令--chmod/cp(目录/权限)
1.+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。-c : 若该档案权限确实已经更改,才显示其更改动作-f : 若该档案权限无法被更改也不要显示错误讯息-v : 显示权限变更的详细资料-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的转载 2014-09-05 11:30:44 · 3371 阅读 · 4 评论 -
linux基础命令---ps -ef/ps -aux
1.Linux操作系统PS命令详细解析,要对系统中进程进行监测控制,用 ps 命令满足你。/bin/psps 是显示瞬间行程的状态,并不动态连续;如果想对进程运行时间监控,应该用 top 工具。kill 用于杀死进程。转载 2014-09-05 11:58:56 · 1045 阅读 · 0 评论 -
c语言学习--空指针
1.void* 这不叫空指针,这叫无确切类型指针.这个指针指向一块内存,却没有告诉程序该用何种方式来解释这片内存.所以这种类型的指针不能直接进行取内容的操作.必须先转成别的类型的指针才可以把内容解释出来.还有'\0',这也不是空指针所指的内容. '\0'是表示一个字符串的结尾而已,并不是NULL的意思.真正的空指针是说,这个指针没有指向一块有意义的内存,比如说:char* k;转载 2014-08-08 14:34:59 · 1462 阅读 · 0 评论 -
linux编程--默认参数
1. 如果一个函数中有多个默认参数,则形参分布中,默认参数应从右至左逐渐定义。当调用函数时,只能向左匹配参数。即默认参数右边全是默认参数。2.转载 2014-09-05 14:16:05 · 945 阅读 · 0 评论 -
c语言编程---指针、引用
1.曾经提到如何判断指针是否为空的问题.很显然,if (p == NULL), if (p == 0)和if(p),都能够完成这一任务,差别在于可读性方面.转载 2014-09-05 15:31:40 · 1171 阅读 · 0 评论 -
c语言编程--指针常量、常量指针、空指针、野指针
1.常量指针的语句格式为:const 类型 *指针常量名=&变量名;如:const int k=5,t=8;const int *p=&k;*p=12;(错误) //常量指针指向的内容是常量,不可以赋值p=&t;(正确) //常量指针的地址可以修改指针所指向的内容不能改变,但是可以改变其所指向的地址。转载 2014-09-05 16:39:34 · 783 阅读 · 0 评论 -
计算机网络学习--IP头校验和
1. 在发送数据时,为了计算数IP据报的校验和。应该按如下步骤: (1)把IP数据报的首部校验和置为0。 (2)把首部看成以16位为单位的数字组成,依次进行二进制反码求和。 (3)把得到的结果存入校验和字段中。 在接收数据时,计算数据报的校验和相对简单,按如下步骤: (1)把首部看成以16位为单位的数字组成,依次进行二进制反码求和,包括校验和字段。转载 2014-09-18 18:47:53 · 3872 阅读 · 1 评论 -
linux基础--gcc命令
1简介GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等。而 GCC 也不再单只是 GNU C 语言编译器的意思了,而是变成了 GNU Compil转载 2014-09-09 09:50:50 · 542 阅读 · 0 评论 -
gcc文件后缀及c程序与传统c++常用的头文件与标准c++头文件
linux下gcc中文件后缀说明:1、以.c为后缀的文件,是C语言源代码文件2、以.a为后缀的文件,是由目标文件构成的档案库文件3、以.C、.cc或.cxx为后缀的文件,是C++源代码文件4、以.h为后缀的文件,是程序所包含的头文件5、以.i为后缀的文件,是已经预处理的C源代码文件6、以.ii为后缀的文件,是已经预处理的C++源代码文件7、以.m为后缀的文件,是Obje转载 2014-09-08 21:36:07 · 1489 阅读 · 0 评论 -
计算机基础---线程分离状态
线程的分离状态决定一个线程以什么样的方式来终止自己。在上面的例子中,我们采用了线程的默认属性,即为非分离状态,这种情况下,原有的线程等待创建的 线程结束。只有当 pthread_join()函数返回时,创建的线程才算终止,才能释放自己占用的系统资源。而分离线程不是这样子的,它没有被其他的线 程所等待,自己运行结束了,线程也就终止了,马上释放系统资源。程序员应该根据自己的需要,选择适当的分离转载 2014-08-12 11:19:17 · 602 阅读 · 0 评论 -
网络编程--服务器编程模型
本文通过一个简单的例子,介绍网络服务器编程模型服务器接受客户端连接请求,回显客户端发过来的数据,发送当前时间给客户端所有源码可打包下载:http://download.csdn.net/detail/yfkiss/4318990客户端请求相关代码:[cpp] view plaincopy//和服务器建立连接 if(connect(sockf转载 2014-09-10 09:39:53 · 584 阅读 · 0 评论 -
c语言编程--网络编程之epoll后续02
2.select模型的缺陷 (1) 在Linux内核中,select所用到的FD_SET是有限的 内核中有个参数__FD_SETSIZE定义了每个FD_SET的句柄个数:#define __FD_SETSIZE 1024。也就是说,如果想要同时检测1025个句柄的可读状态是不可能用select实现的;或者同时检测1025个句柄的可写状态也是不可能的。转载 2014-09-10 09:32:48 · 812 阅读 · 0 评论 -
c语言编程--网络编程模式
IO模型在Richard Stevens的《UNIX网络编程,第一卷》(程序猿必备!)一书中有非常详尽的描述,以下简要介绍,并给出代码示例。另外比较好的总结性blog,推荐:使用异步 I/O 大大提高应用程序的性能IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇)常见网络IO模型:阻塞式IO、无阻塞式IO、IO复用、异步IO、信号驱动阻塞式IO:在一个进程发转载 2014-09-10 09:35:24 · 1002 阅读 · 0 评论 -
fork()----父子进程共享
fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,linux中引入了“写时复制“技术,也就是只有进程空间的各段的内容要发生变化时,才会将父进程的内容复制一份给子进程。在fork之后exec之前两个进程用的是相同的物理空间(内存区),子进程的代码段、数据段、堆栈都是指向父进程的物理空间,也就是说,两者的虚拟空间不同,但其对应的物理空间是同一个。当父子进转载 2014-09-10 19:03:32 · 8737 阅读 · 0 评论 -
Linux下动态库的生成和使用
一.动态库的基本概念1. 动态链接库是程序运行时加载的库,当动态链接库正确安装后,所有的程序都可以使用动态库来运行程序。动态链接库是目标文件的集合,目标文件在动态链接库中的组织方式是按照特殊方式形成的。库中函数和变量的地址是相对地址,不是绝对地址,其真实地址在调用动态库的程序加载时形成。2. 动态链接库的名称有别名(soname), 真名(realname)和链接名(linker name转载 2014-09-10 16:50:51 · 655 阅读 · 0 评论