
C++
奔跑哥
stay foolish, stay hungry.
展开
-
qt 清除模式的应用以及动态绘制
在现实中,我们经常需要动态的去更新屏幕上的数字或者下标等,但是 qt 中没有直接的方法,一般都是通过先擦除,然后再绘制新的数字下标等。在擦除模式后,我们还是需要动态绘制在之前的图片上,所以需要切换回原来的模式。这个很重要,不然无法绘制。原创 2024-08-06 22:57:20 · 473 阅读 · 0 评论 -
Qt连接mysql查询数据
不知道咋回事,最近环境总是失败。今天更新代码,有新的gem需要安装,结果bundle install,就失败了。报错如下in `bin_path’: can’t find gem bundler (>= 0) (Gem::GemNotFoundException)后来只能重新安装了一下。 gem install bundler –no-ri –no-rdoc原创 2016-12-21 15:06:00 · 11907 阅读 · 2 评论 -
wcstombs 使用之二,支持中文当unicode
当你调试进入源码,你会发现wcstombs 这个函数是和locale有关的。locale如果设置不对,那么程序运行将不能得到预期结果。当C语言程序初始化时(刚进入到 main() 时),locale 被初始化为默认的 C locale,其采用的字符编码是所有本地 ANSI 字符集编码的公共部分,是用来书写C语言源程序的最小字符集(所以才起locale名叫:C)。也就是说,默认locale是原创 2012-08-28 11:51:58 · 7585 阅读 · 4 评论 -
wcstombs的使用
Converts a sequence of wide characters to a corresponding sequence of multibyte characters.size_t wcstombs( char *mbstr, const wchar_t *wcstr, size_t count );原创 2012-08-27 18:33:11 · 5373 阅读 · 0 评论 -
关于c++跨平台开发的几点思考
为什么要做C++跨平台开发从我参与的两个项目看,一般都是要求底层库可以跨平台。UI上层可以采用现有的跨平台UI框架,也可以使用平台独有的UI框架(为了更好的使用平台特性)c++底层库封装了大量的io操作,或者是产品开发所需要调用的相关API。这样可以更好的复用code,降低跨平台开发的成本。而且可以很好地控制核心API的开发和维护,由单独的一个team来完成,从而更好的控制风险和质量。原创 2012-07-25 12:03:36 · 1310 阅读 · 2 评论 -
C++中class与struct的区别
转自:http://blog.donews.com/gozilch/archive/2007/09/13/1209799.aspx 很老的问题了。今天稍微总结了下,有遗漏的地方和错误的地方还望大家补充。关于使用大括号初始化: class和struct如果定义了构造函数的话,都不能用大括号进行初始化。 如果没有定义构造函数,struct可以用大括号初始化。 如果没有定义构造转载 2009-08-28 09:55:00 · 872 阅读 · 1 评论 -
关于C++中如何判断文件,目录存在的若干方法
在我们平时的编程时,经常需要判断文件 或者 目录是否存在,相对来说判断文件的存在性比较简单,目录则比较复杂。 下面就详细的介绍几种方法。首先关于判断文件的存在性:1. 使用c++或C中提供的关于文件操作的一些方法。在C++中,可以利用ifstream文件输入流,当我们直接使用ifstream来创建文件输入流的时候,如果文件不存在则流创建失败。 ifstream fin(原创 2009-03-06 18:50:00 · 2540 阅读 · 2 评论 -
关于一种宏的用法解释
关于这种用法(winsock2.h中)#define FD_SET1(fd, set) do{///some codes fragment;}while(0)此宏一般用于嵌入一段代码段,或是用宏来封装一段可重用的代码。当然也可写为#define FD_SET2(fd, set){///some codes fragment;}这两段宏定义表达的本质是完全相同的。但是当我们使用的时候却有些不同。原创 2008-11-11 21:02:00 · 1103 阅读 · 0 评论 -
关于string的成员函数substr
这个函数的原型是substr(size_type off,size_type count)第一个参数表示在string的char数组中的偏移量,count是从这个偏移的位置开始,字串的长度。这两个参数的错误使用将导致程序crash或者获得错误的结果。主要两种错误情况,off大于数组的长度或者小于0,和count大于字符串的长度或者count小于0对于off的错误,当其大于数组的长度是,即是数组越界原创 2008-11-11 21:56:00 · 32828 阅读 · 11 评论 -
c++ 中字符串忽略大小写比较
在我们平时的学习和工作中,我们经常需要对字符串进行各种比较,例如,忽略大小写比较,精确比较等。但目前C++标准库并没有为string提供这样的方法,从而使我们不能方便的比较。所以碰到这种问题一般是自己写一个字符串的比较规则,然后通过函数指针,或者函数对象调用,从而完成比较。也可以直接写为一个全局的字符串比较函数。幸运的是,在标准C中提供了比较两个C style字符串的忽略大小写的比较方法,该方法就原创 2008-10-17 21:17:00 · 32594 阅读 · 5 评论 -
关于dll导出symbols杂谈。
Dll导出的symbols每个编译器的实现都不一样,现在主要讨论vc++编译器的一些做法。Symbols 主要与函数调用方式,以及extern "C" 链接指示符,以及参数列表,函数返回值有关。 1. 函数调用方式。__stdcall ,__cdecl.的区别。参数压栈方式不同。前者是被调用函数自身负责自己参数的压栈,出栈。后者是调用者负责该函数的参数的压原创 2008-09-25 13:19:00 · 1100 阅读 · 0 评论 -
关于c++ fstream的一个容易使用出错的地方。
关于c++ 中 文件流的两个类,ifstream 和ofstream,大家也许并不陌生。其负责c++的文件输入流 和 文件输出流。基本上所以语言都会提供类似的文件输入流 和文件输出流类。 但当大家学习了java,或者c#后,大家就很容易用错这个类,把三种语言混淆。在java 和 c#中,关于打开输入文件流,或者输出流,都是通过抛出异常来标志打开失败。而且大家对这种思想也很容易接原创 2008-09-16 22:29:00 · 5895 阅读 · 2 评论 -
慎用 const 引用参数类型
前两天写代码时同事碰到一个c++编译错误,代号为c2664,内容为 不能将const object * __w64 to object*, 但明明取的就是一般的object*,怎么会说我们给的参数类型是const object* __w64,很奇怪。经过细心检查,原来是函数参数的问题,用的const object& 类型,虽然大家一般都用const 加 &来创建参数,这样效率会高,也可防止修改原创 2008-06-14 14:59:00 · 2759 阅读 · 0 评论 -
谈c++ 和 c#关于字符串和其它类型的相加操作
大家都比较熟悉字符串相加操作,一般有这么几种情况:1. 当两个字符串直接相加的时候,c#中通过建立中间临时对象,最终创建一个新的字符串,其值就是两个字符串的连接。例如:在c#中,string str = “a" + "example" ;在c++,也是同样道理,字符串的相加操作。2.当字符串和整型或者布尔类型相加。在c#中,我们知道每种类型就继承自object,而object都默认实现原创 2008-06-11 22:06:00 · 5302 阅读 · 0 评论