
c++
节奏胜于思想
这个作者很懒,什么都没留下…
展开
-
__declspec(dllimport)
我相信写WIN32程序的人,做过DLL,都会很清楚__declspec(dllexport)的作用,它就是为了省掉在DEF文件中手工定义导出哪些函数的一个方法。当然,如果你的DLL里全是C++的类的话,你无法在DEF里指定导出的函数,只能用__declspec(dllexport)导出类。但是,MSDN文档里面,对于__declspec(dllimport)的说明让人感觉有点奇怪,先来看看MSDN转载 2013-10-09 18:25:34 · 392 阅读 · 0 评论 -
Unicode字符集和多字节字符集关系
Unicode字符集和多字节字符集关系在计算机中字符通常并不是保存为图像,每个字符都是使用一个编码来表示的,而每个字符究竟使用哪个编码代表,要取决于使用哪个字符集(charset)。 在最初的时候,Internet上只有一种字符集——ANSI的ASCII字符集,它使用7 bits来表示一个字符,总共表示128个字符,其中包括了英文字母、数字、标点符号等常用字符。之后,又进行扩展,使用8转载 2014-06-28 18:04:23 · 356 阅读 · 0 评论 -
通用套接口选项
level(级别)SOL_SOCKET[cpp] view plaincopyprint? SO_BROADCAST允许发送广播数据 适用于UDP socket.其意义是允许UDP socket「广播」(broadcast)讯息到网路上。启用或禁止进程发送广播消息的能力。只有数据报套接口支持广转载 2014-06-30 13:47:58 · 519 阅读 · 0 评论 -
Nagle算法
Nagle算法用于对缓冲区内的一定数量的消息进行自动连接。该处理过程(称为Nagling),通过减少必须发送的封包的数量,提高了网络应用程序系统的效率。1. Nagle算法的规则 (可参考tcp_output.c文件里tcp_nagle_check函数注释):1)如果包长度达到MSS(MSS是最大分段大小Maxitum Segment Size ,MTU是最大传输单元Maxi转载 2014-07-01 12:38:08 · 657 阅读 · 0 评论 -
MFC启动其他MFC进程,并传递参数,同时获取参数
启动另外进程采用ShellExecuteEx()函数实现:SHELLEXECUTEINFO shell = { sizeof(shell) }; shell.fMask = SEE_MASK_FLAG_DDEWAIT; shell.lpVerb = L"open"; shell.lpFile = L"C:/Users/zs/Desktop/mfc获取命令行参数/receivep转载 2014-07-06 15:40:17 · 2657 阅读 · 0 评论 -
命令行编译程序 MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe)
MinGW:c -> o gcc -c a.cc -> exe gcc a.c libs.o -o a.exe (从主程序a.c,附加libs,生成a.exe)o -> exe gcc a.o b.o ... -o main.exec -> dll,def,a gcc a.c -shared -o a.dll -Wl,--ou转载 2014-07-28 08:40:14 · 994 阅读 · 0 评论 -
Makefile经典教程(掌握这些足够)
makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写make转载 2014-08-01 22:56:32 · 363 阅读 · 0 评论 -
makefile和make规则
首先介绍make实用程序的语法和常用选项,然后细剖makefile文件的组成。make命令make [选项] [目标] [宏定义]通过命令行参数中的target,可指定make要编译的目标,并且允许同时定义编译多个目标,操作时按照从左向右的顺序依次编译target选项中指定的目标文件。如果命令行中没有指定目标,则系统默认target指向描述文件中第一个目标文件。-d转载 2014-08-01 22:50:06 · 497 阅读 · 0 评论 -
vs2010 error LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
终极解决方案:VS2010在经历一些更新后,建立Win32 Console Project时会出“error LNK1123” 错误,解决方案为将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单 “是”改为“否”即可,但是没新建一个项目都要这样设置一次。在建立VS2010 Win32 Project项目时,按照上面解决方案依然发生了“error LNK1123”错误,经过上网查资原创 2014-08-11 04:44:59 · 424 阅读 · 0 评论 -
[BuildRelease]跨平台构建工具Cmake
一 CMakeCMake 是一个跨平台的构建工具,通过一次的cmake script的编写,能够生成常见平台常见IDE的project文件或maikefile文件,例如生成visual studio project文件,eclipse project文件,makefile等;同时相对于linux的automake工具生成makefile的过程相对简单。 主页:http:转载 2014-12-23 18:05:00 · 523 阅读 · 0 评论 -
cmake 学习笔记(一)
最大的Qt4程序群(KDE4)采用cmake作为构建系统Qt4的python绑定(pyside)采用了cmake作为构建系统开源的图像处理库 opencv 采用cmake 作为构建系统...看来不学习一下cmake是不行了,一点一点来吧,找个最简单的C程序,慢慢复杂化,试试看:例子一单个源文件 main.c例子二转载 2014-12-23 16:16:01 · 514 阅读 · 0 评论 -
dll #pragma data_seg注意事项
#pragma data_seg("flag_data") int count=0;#pragma data_seg()#pragma comment(linker,"/SECTION:flag_data,RWS")这种方法只能在没有def文件时使用,如果通过def文件进行导出的话,那么设置就要在def文件内设置而不能在代码里设置了。SETCTIONS flag_d转载 2014-06-26 13:33:42 · 636 阅读 · 0 评论 -
C++预编译头文件
许多初学 VC 的朋友也许都为那么一个问题困扰过: 为什么所有的 cpp 都必须 #include "stdafx.h" 也许请教了别的高手之后,他们会告诉你,这是预编译头,必须包含。可是,这到底是为什么呢?预编译头有什么用呢? 这得从头文件的编译原理讲起。其实头文件并不神秘,它的全部作用,就是把自己的所有内容直接“粘贴”到相应的 #include转载 2014-06-23 23:02:35 · 393 阅读 · 0 评论 -
__declspec(dllimport)的作用
是时候总结一下__declspec(dllimport)的作用了。可能有人会问:__declspec(dllimport)和__declspec(dllexport)是一对的,在动态链接库中__declspec(dllexport)管导出,__declspec(dllimport)管导出,就像一个国家一样,有出口也有进口,有什么难理解的呢?这是一种很自然的思路,开始我也是这样理解。 但转载 2013-10-09 18:28:00 · 375 阅读 · 0 评论 -
说说ShellExecuteEx
今天来说说ShellExecuteEx这个函数,先翻译MSDN,然后看个例子。 ShellExecuteEx Function对指定应用程序执行某个操作语法:BOOL ShellExecuteEx( LPSHELLEXECUTEINFO lpExecInfo);参数:lpExecInfo[in, out] 一个指向SHELLEXECUTEI转载 2013-10-11 11:26:43 · 1257 阅读 · 0 评论 -
Visual Studio 2008 中创建和调用Static Library静态链接库文件
1.新建一个Visual C++语言下的Win32项目,在应用程序内容中选择“静态库”,去掉预编译头前的选项钩。OK!完成! 2.在头文件目录中加一个lib.h文件 [cpp] view plaincopyprint?#ifndef LIB_H #define LIB_H extern "C" int add(int x,int y);转载 2013-10-12 10:49:40 · 881 阅读 · 0 评论 -
【C++】JSON数据解析——jsoncpp的使用
由于工作中需要用到JSON数据,所以解析JSON数据就成了一个非常重要的工作内容。其实用C++解析数据是很繁杂的任务,涉及到很多的数据处理和数据安全问题。好在网上提供了很多的JSON解析库,其中不乏很优秀的,出于效率,还是使用这些第三方的库比较好。我使用的是jsoncpp,这是一个开源的C++的JSON解析库,我将写两篇博文来介绍如何使用jsoncpp,而本文将介绍jsoncpp的添加。转载 2013-10-12 10:45:21 · 714 阅读 · 0 评论 -
C/C++基本数据类型长度 .
熟知基本数据类型是我们正确表达实际问题中各种数据的前提,因此我分类总结了一下C/C++/Windows /C#基本数据类型,以便日后查阅。 ANSI C/C++基本数据类型:TypeSize数值范围无值型void0 byte无值域布尔型bool 1转载 2013-10-14 14:03:00 · 592 阅读 · 0 评论 -
关于
今天师傅让给做json数据的转换,网上随便找了个实验了下,打印怎么不行const char* str="{\"uploadid\": \"UP000000\",\"code\": 1000,\"msg\": \"\",\"files\": \"\"}"; Json::Reader reader; Json::Value root; if(reader.parse(str,root)原创 2013-10-16 18:15:08 · 378 阅读 · 0 评论 -
RTTI .
自从1993年Bjarne Stroustrup 〔注1 〕提出有关C++ 的RTTI功能之建议﹐以及C++ 的例外处理(exception handling)需要RTTI﹔最近新推出的C++ 或多或少已提供RTTI。然而,若不小心使用RTTI﹐可能会导致软件弹性的降低。本文将介绍RTTI的观念和近况﹐并说明如何善用它。 什么是RTTI﹖ 在C++ 环境中﹐标头档(hea转载 2013-10-24 09:50:15 · 375 阅读 · 0 评论 -
C++ const引用详解
(1) 在实际的程序中,引用主要被用做函数的形式参数--通常将类对象传递给一个函数.引用必须初始化. 但是用对象的地址初始化引用是错误的,我们可以定义一个指针引用。1 int ival = 1092;2 int &re = ival; //ok3 int &re2 = &ival; //错误4 int *pi = &ival;5 int *&pi2 = pi转载 2013-10-20 15:02:28 · 489 阅读 · 0 评论 -
jsoncpp用法简述
Jsoncpp是一个使用C++语言实现的面向对象的json库。Jsoncpp提供的接口中有3个核心类:Reader、Writer、Value。Reader类负责从字符串或者输入流中加载JSON文档,并进行解析,生成代表JSON文档的Value对象。 Writer类负责将内存中的Value对象转换成JSON文档,可输出到文件或者是字符串中。 Value类的对象代表一个JSON值,转载 2013-10-28 11:29:50 · 772 阅读 · 0 评论 -
int operator[](int pos)const;与int& operator[](int pos);的区别
int operator[](int pos)const;与int& operator[](int pos);的区别反回类型为引用的下标运算符一般在使用时用作左值,比如c[1]=1;在这种情况下,必须要求c[1]的结果是一个可以赋值的左值,因此int& operator[](int pos);这个函数的版本主要是为左值设定的,反回对变量的引用就可以作为左值。int operator[]转载 2013-11-26 11:07:01 · 1389 阅读 · 0 评论 -
CMake使用介绍
最近,公司的代码编译从直接使用 GNU make 转向了 cmake.下面介绍一下cmake 的使用1) cmake 的基本语法cmake 可以看作一种脚本语言,它的一些语法和其他一下脚本语言(bash, python等)是相似的。1.1 命令:基本格式为command(param)命令可大写或者小写 (case-insensitive)转载 2014-12-23 20:59:01 · 752 阅读 · 0 评论