自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (3)
  • 收藏
  • 关注

原创 php+mysql decimal字段处理金额遇到误差处理思路

1确保数据库字段的精度和内存中的精度保持一致数据库中的金额字段 decimal (18,3)内存中的变量 $amount 的精度,只要保留3位小数,更改数据表中的字段值,比如return self::query()->where("id", $shopId)->increment("amount", $amount);才不会出现被mysql自动做四舍五入,导致0.001的差距2使用bcmath库进行运算<?php...

2021-01-21 21:05:32 1017

原创 discuz批量发帖工具

1. 创建一个mysql数据库 crawler,创建一个采集文章表articles:CREATE TABLE `articles` (`id` int(11) NOT NULL AUTO_INCREMENT,`title` varchar(100) DEFAULT NULL,`time` datetime DEFAULT NULL,`content` varchar(300

2015-12-17 15:28:54 7890

原创 黑苹果,蓝牙折腾经历

黑苹果安上usb蓝牙驱动

2015-10-11 14:09:07 45937

原创 Resis 性能测试

value 长度 1kSET 速度:  0.0460251 毫秒/1Item每秒处理的Item个数: 21727 MSET 速度 : 0.0113217毫秒每秒处理的Item个数 : 88326GET 速度  : 0.0420871 毫秒/1Item每秒处理的Item个数: 27360.2MGET速度 : 0.0113217 毫秒

2014-03-13 11:20:14 1073

转载 “拥抱”异常,还是,“固守”返回值?

我想,作者对于异常的性能可能有一些误会。对于 Java 或 C# 这样的语言,异常的成本无论高低,都是不可回避的,不谈了。对于 C++ 来说,未发生的异常,其成本极其微小,大体上,只是多一个地址入栈的问题。而对于已经发生的异常,这个成本确实比较高,但是,在这种时候,正确性当然压倒 所有性能要求。还有,退出作用域时析构函数必须调用,这个与抛出异常与否无关,throw 也好,return 也好,都会发

2013-12-21 15:16:36 1939

原创 编写搞质量的程序一些技巧总结

(1) 用查表法替代又臭又长的switch/case, if/else,且看例子: 不推荐switch/case例子:int QCleanlooksStyle::pixelMetric(...){ int ret = -1; switch (metric) { ... case PM_SpinBoxFrameWidth: ret = 3;

2013-11-27 15:47:51 1514

原创 使用VC助手 Visual Assist (VA)为类私有变量生成Get Set操作方法

写一个类,经常有如下动作: class {public:   int getVal() { return m_nVal; }  int setVal(int val) {  m_nVal = val};private:   int m_nVal;};虽然写Get Set相当简单,但是当变量很多的情况异常繁琐.Va已经帮我们解决了这个问题,看图:

2013-11-27 15:35:00 3929

原创 std::map lower_bound,upper_bound的用法举例

std::map是我们最常用的容器之一,然而 lower_bound, upper_bound很少使用,这里介绍一下经典用法:k1020std::map mapPrize;mapPrize[10] = 500;mapPrize[20] = 600;mapPrize[30] = 700;mapPrize.lower_bound(9)->

2013-10-13 11:30:29 7890

原创 C++ 服务端开发总结

无聊时候写的:1.不急于动手,先把架构想好,设计好,形成UML图,和同事讨论2. 开发前先把所有功能点,边界点都想好,罗列到TODO List3. 在脑袋瓜清楚的情况写最高效,最健壮的,最通用的代码4. 服务端开发,异常情况请用断言,把异常消灭在Debug阶段5. 在一些状态,事件,边界条件点,多打日志,易于后期定位问题6.一开始的时候使用最稳定简单的方式写,证明稳定后,再

2013-06-26 13:05:22 1709

原创 CoolFormat 和VS2010完美结合

CoolFormat真是好东西,可以把源代码格式化成机器,支持多种语言.(1)下载CoolFormathttps://code.google.com/p/coolformat/(2) 进入vs2010的外部工具,添加CoolFormat工具特别注意参数: -f $(ItemPath)(3) 设置快捷键菜单进入: “工具”-

2013-04-27 17:38:55 2672

原创 基于once0.6的高性能socks5服务器:once socks 5

http://monkeycn.iteye.com/admin/blogs/1044706

2011-05-16 16:18:00 1320

原创 安全输入控件 EPowerInput 通过AKLT安全测试

<br />安全输入控件 EPowerInput<br /><br />介绍:<br />    安全控件是一种为了提升账户安全,防止账户密码等私密信息被木马或病毒窃取的客户端程序.<br />2009年CCTV2对“大小姐”木马案件的系列报道,标志着当前的“木马经济产业链”已经非常成熟,<br />已经成为不可忽视的互联网安全和社会性问题。如何让用户账号信息输入更安全防止被黑客盗取成为互联网信息安全的首要问题,<br />在这样的背景下,要求我们必须通过安全控件这种技术手段加强对用户帐号信息的安全保护。<

2011-03-28 23:09:00 1942

原创 头文件 const(转)

<br />2009-12-28 19:11<br />//stdafx.h<br />#pragma once<br />//int yu = 444;//这种方法是错误的,不能在头文件之中定义<br />const   int yuan = 223;//const常量可以在头文件爱你之中定义,可以实现数据共享,和成为个.cpp的纽带<br />#include "targetver.h"<br />#include <stdio.h><br />#include <tchar.h><br />#incl

2011-01-31 19:27:00 1276

原创 vc2010 mfc 关闭自动写注册表

<br />vc2010 的mfc的界面增强不少,但是由于采用的是BCG的缘故,默认情况会自动写注册表记录界面状态.<br />在使用CMFCToolBar时候,代码里面改变了工具栏的外观,重新编译,启动应用程序,外观还是没有改变,<br />甚是郁闷,通过google,找到解决方法:<br /> <br /> <br />BOOL Ccib_clientApp::InitInstance(){ m_bSaveState = FALSE;.....................}<b

2010-10-19 11:19:00 2915 1

转载 _bstr_t 与 CString 相互转换 ,BSTR 宽字符串与CString相互转换

<br /><br />(1)_bstr_t 与 CString 相互转换<br /> <br />_bstr_t bstr;<br />CString strSql;<br />CString->_bstr_t: bstr = (_bstr_t) strSql;<br />_bstr_t->CString: strSql = (LPCSTR) bstr;<br /> <br />(2) BSTR 宽字符串与CString相互转换<br />BSTR bstr;<br />CString strSql;<b

2010-09-13 16:13:00 1318

原创 mtu 获取

<br />MTU是什么:<br />      MTU是Maximum Transmission Unit的缩写,意思是最大传输单元。<br />      MTU的单位是字节。 大部分网络设备的MTU都是1500。我们这里谈的MTU是指两台通信主机路径中的最小MTU。它被称作路径MTU。<br />      如果本机的MTU比经过的网关,路由的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。把本机的MTU设成比网关,路由的MTU小或相同,就可以减少丢包。<br

2010-08-17 16:47:00 2483

转载 igslot介绍

最近在开发一个基于libjingle开源的IM系统,里面有一个其类为has_slots,搜索了一下其资料发现是一个很好用的C++库,先对其简单介绍一下。1. 简介 sigslot是一个线程安全、类型安全,用C++实现的sig/slot机制(sig/slot机制就是对象之间发送和接收消息的机制)的开源代码库。是一个非常好用的库,只有一个头文件sigslot.h。2. Sigslot实例 现代的C++项目通常包含大量的C++类和对象,对象之间通

2010-08-17 16:05:00 1233

原创 C++/c static和匿名命名空间 总结

<br />static:<br />1、函数之外的变量就是全局变量,这个想法正确吗? <br /> 答: 在C中,完全正确。只不过按有没有加static修饰可以分为静态全局变量和一般全局变量两种。 <br /> 2 如果在全局变量的前面加上static 会有什么用? <br /> 答:在C中,静态全局变量意味着两个方面。一、在生命期方面,它与一般全局变量一样,是与整个程序共存亡的;二、在可见性方面,它只在定义它的那个编译单元中可见。比如说,你在test

2010-08-17 09:26:00 2082

原创 orzAsio代码研究一些笔记,感谢nous

<br /><br />(1) 组包发送数据<br />if (_ascId.cbId.clr == 0 && _ascId.cbId.id == 0)<br />{<br />return true;<br />}<br /><br />IPacketShrPtr pk = allocPacket();<br />if (!ORZ_NET_DYN_ASSERT(pk != 0, __FILE__, __LINE__, 0))<br />{<br />return false;<br />}<br /> <

2010-08-16 15:19:00 2483 1

原创 用 select 实现 定时器功能,摘抄自boost.asio

void wait(implementation_type& impl, boost::system::error_code& ec) { time_type now = Time_Traits::now(); while (Time_Traits::less_than(now, impl.expiry)) { boost::posix_time::time_duration timeout = Time_Traits::to_posix_duration(T

2010-08-09 22:25:00 2833

原创 C代码优化案例

(1)Switch语句中根据发生频率来进行case排序Switch 可能转化成多种不同算法的代码。其中最常见的是跳转表和比较链/树。当switch用比较链的方式转化时,编译器会产生if-else-if的嵌套代码,并按照顺序进行比较,匹配时就跳转到满足条件的语句执行。所以可以对case的值依照发生的可能性进行排序,把最有可能的放在第一位,这样可以提高性能。此外,在case中推荐使用小的连续的整数,因为在这种情况下,所有的编译器都可以把switch 转化成跳转表。(2)while循环和do…while循环用wh

2010-08-04 14:45:00 1087

原创 ICE 网络库尝试

<br />1.编写 ice 对象定义文件Printer.ice:<br /> <br />// **********************************************************************<br />//<br />// Copyright (c) 2003-2010 ZeroC, Inc. All rights reserved.<br />//<br />// This copy of Ice is licensed to you under the t

2010-07-30 15:26:00 4466

原创 lua创始人的经验总结

<br /><br />应用程序设计者应该从一开始就考虑脚本。这会给它们带来更多的灵活性。而且这样做还可以更好的把握性能问题。因为这样做以后,会迫使他们去考虑程序中到底哪里是性能关键,而哪些地方无伤大雅。<br /> <br />我们不信任基于抢占式内存共享的多线程技术。我们仍然认为,如果在连 a=a+1 都没有确定结果的语言中,无人可以写出正确的程序。<br /> <br />你认为未来可能会用到的功能,就不要马上添加了:现在增加这个功能只会让你日后真的需要这个东西时,那些更好的特性很难加入。最后,永远追

2010-07-08 09:48:00 1297

转载 转 vc2008调试activeX控件

不知道是不是微软的粗心大意,VS2008中竟然没有ActiveX控件测试容器。幸好需要在IE中测试控件,就不需要那个测试容器啦。1. 生产测试控件的HTML:Test2. 设置debug选项command: C:/Program Files/Internet Explorer/iexplore.execommand arguments: F:/test.htm3. 全路径注册ocx时,需要使用全路径。 否则就有错误:The sepcified

2010-07-06 10:33:00 2205

转载 C++数组初始化正确理解

<br />一直以为 int a[256]={0};是把a的所有元素初始化为0,int a[256]={1};是把a所有的元素初始化为1. 调试的时查看内存发现不是那么一回事,翻了一下《The C++ Programming Language》总算有定论。PDF的竟然不然复制,就把它这章翻译了,如下5.2.1 数组初始化 数组可以用一个列值来初始化,例如 int v1[] ={1,2,3,4}; char v2[]={'a','b','c',0}; 当数组定义时没

2010-06-27 10:08:00 1112

原创 s60 v5 sdk 无法设置为中文界面解决

<br />分析开始菜单中的change to chinses.lnk的源代码:<br />"C:/Program Files/Java/jre1.5.0_07/bin/javaw.exe" -classpath unzip.jar;plugins/general.jar;lib/log4j-1.2.8.jar -Dsource=language -Ddestination=../../.. -Dlanguage=zh_cn -Dplatform=winscw com.nokia.epdt.zip.ZipM

2010-06-17 09:30:00 2005

原创 symbian s60 v3 更改图标步骤

1. 更改svg图标内容后,保持其文件名不变2. 在SDK安装目录搜索****_reg.mif的文件并删除(****为你工程名)3. 确保你的rss文件中,RESOURCE LOCALISABLE_APP_INFO r_****_localisable_app_info  {  short_caption = qtn_hewb_short_caption_string;  caption_and_

2010-05-28 10:43:00 1036

原创 symbian活动对象实战

活动对象对于symbian编程初学者来说,是个难点,这里给出偶的实战代码。 步骤:(1)在carbide C++ 2.0 中新建一个s60 控制台程序test_active_object(2)修改里面的.h .cpp文件内容为: /* ====================================================================

2010-05-26 16:58:00 561

转载 宏定义中使用do{}while(0)的好处

#define MACRO_NAME(para) do{macro content}while(0)的格式,总结了以下几个原因:1,空的宏定义避免warning:#define foo() do{}while(0)2,存在一个独立的block,可以用来进行变量定义,进行比较复杂的实现。3,如果出现在判断语句过后的宏,这样可以保证作为一个整体来是实现:#define fo

2010-05-14 09:20:00 554

原创 qt creator 和 vc 6环境变量冲突解决

  环境变量,删除用户变量里的include变量和lib变量,确定。然后重新打开Qt Creator,菜单 tools->option->ReBuild debugging helper library,关闭并重新打开Qt Creator,随便选择一个Example,编译成功!问题到此为止已经解决,不过具体原因不大清楚。估计安装了Microsoft Visual Studio的用户也可能出

2010-05-05 15:21:00 2089

原创 看jabberd2代码一些总结

sqlite的sql关键字全部大写 宏定义,字符串处理#define ASSIGN_FIELD(KEY, DEFAULT)   /    col = key_index_map[#KEY];/    cell_string = get_cell_string(sheet, r, col, DEFAULT);/    a_info->KEY->assign(cell_st

2010-04-24 10:31:00 932

原创 windows 下编译jabberd2的痛苦经历

编译jabberd2的痛苦经历: (1) 昨天试着在linux上编译最新版本的jabber2有个udns版本太低的错误,找了很多资料没有解决,可能是代码有bug. 昨晚试着编译windows的jabber2,也遇到了好多问题,jabber2的开发人员真是不负责啊 1.依赖库编译(%*,*完成): ============== %*libidn version 1.7 or higher, sour

2010-04-24 10:29:00 2363 2

转载 windows下开发PHP扩展dll(无需Cygwin)

 windows下开发php扩展网上很多资料都说需要Cygwin,其实完全可以不必安装该东东。没错,是可以在linux下生成骨架后拷到windos下来用,但是,如果没有linux环境呢?什么,装虚拟机?我晕,你咋又绕回去了- -! 除了编译外,shell环境主要就是为了生成扩展的骨架,其实骨架已经在php源码包中了了,我们只需要把相关名字替换一下即可使用。 准备:1、php源码包和

2010-04-09 15:37:00 2768 1

原创 cpp文件引用c的头文件,千万注意

C 和C++混合编程时候,Cpp文件引用C的头文件时候,比如 a.h a.c  b.cpp中引用 a.h 必须这样: extern "C"{   #include "a.h"} void do_something(){}

2010-04-07 11:51:00 1508

原创 jsoncpp vc2005 编译测试

新建一个vc8 win32 控制台程序 使用多字节字符 包含jsoncpp_src_0_5_0/src/lib_json 下的所有代码到工程中 引用jsoncpp_src_0_5_0/include/json/json.h 编写如下代码: // test_jsoncpp_vc8.cpp : 定义控制台应用程序的入口点。//#include "stdafx

2010-03-17 14:58:00 2727 1

原创 在Windows下编译OpenSSL(VS2005)【转】

测试了好久才成功,万恶的openssl在Windows下编译OpenSSL(VS2005)【转】 如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)1、安装ActivePerl//初始化的时候,需要用到perl解释器2、使用VS2005下的Visual Studio 2005 Command Prompt进入控制台模式(这个模式会自动设置各种环境变量)3、解压

2010-03-12 10:51:00 736

转载 郁闷了2天的问题终于解决了(MSDN无法显示页面的解决 )

MSDN无法显示页面的解决 症状:MSDN无法正常显示页面,目录显示正常。提示网页错误!GOOGLE搜索未果。解决:偶有一天用HijackThis查毒时发现,少了这行O18 - Protocol: ms-help - {314111C7-A502-11D2-BBCA-00C04F8EC294} - C:/Program Files/Common Files/Microsoft Shared/H

2010-02-23 22:37:00 4196

转载 优质代码的十诫(转贴)

 DRY 是一个最简单的法则,也是最容易被理解的。但它也可能是最难被应用的(因为要做到这样,我们需要在泛型设计上做相当的努力,这并不是一件容易的事)。它意味着,当我们在两个或多个地方的时候发现一些相似的代码的时候,我们需要把他们的共性抽象出来形一个唯一的新方法,并且改变现有的地方的代码让他们以一些合适的参数调用这个新的方法。 DRY 这一法则可能是编程届中最通用的法则了,目前为止,应该没有哪个

2010-02-22 09:52:00 640

原创 TRUEUPDATE升级系统

     在线更新系统对于现代软件来说太重要了,这里介绍用一家加拿大公司出品的TrueUpdate构建你的升级系统.TrueUpdate是使用lua来应付复杂多变的升级业务。 升级简单流程是这样的:运行trueupdate客户端,下载升级脚本,执行脚本,脚本里面执行下载补丁。不多说了,直接给出我的方案:    系统规划:1.proj1 // 升级项目          sid1  // 升

2010-01-28 09:38:00 3023

原创 用队列实现贪吃蛇游戏逻辑

用队列实现贪吃蛇游戏逻辑class  form{public:    ontimer();  //定时处理    is_die();   //判断蛇是否死亡    move();   // 移动蛇    is_has_food(); //蛇头位置是否有食物    eat_food(); // 蛇吃当前位置的食物    display(); //显示蛇        private:    qu

2010-01-27 22:01:00 2454

C# 小票打印

C# 小票打印代码,支持市面上常用的小票打印机

2012-10-29

支持换色的ListCtrl

CListCtrl颜色太单调了, 这个支持换色的ListCtrl

2010-11-06

.net2.0 Ftp 上传

用C# 2.0 写的ftp工具,支持多文件,定时上传。

2007-08-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除