- 博客(89)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注
原创 windows编译的库无法在其他机器上使用
在别的机器上编译过的libprotobuf.lib和libconfig.lib不能在其他机器上使用。编译时libprotobuf静态库会提示无法解析外部符号的错误。链接时libconfig.lib动态库链接到libconfig++d.dll时会提示内存错误信息。原因有多种:比如编译lib库的计算机为32位的,而是用lib的计算机为64位,可能造成此问题;还有可能是编译lib库的
2014-03-03 18:21:34 1358 1
原创 有关protobuf
protobuf客户端C++最后总结使用libprotobuf-lite版本(如果够用,服务器端也用lite版),比较小,拿Version-2.5.0编译出来的静态库看:mac上1.6M,windows上3.4B,centos上2.1M;如果用在手机上的话1.6M有些大,还没在手机上用过(后续在看);不过还可将就,因为现在动不动一个游戏客户端就几十几百M的;注意在.proto文件中
2014-02-28 12:57:03 4996
原创 database is locked和SQLITE_BUSY
这是官方文档:http://www.sqlite.org/cvstrac/wiki?p=DatabaseIsLocked下面我做了几个实验:1、多个线程(pthread),使用同一个句柄(一次sqlite3_open,同一个数据库文件),在多个线程中同时使用此句柄,这些线程中有的是进行select操作的,有的是进行update操作的,使用的都是sqlite3_exec函数;结果是没
2014-01-22 15:53:34 14462 2
原创 socket epoll 模型
/* * File: main.c * Author: xys * * Created on 2013年12月12日, 下午3:14 * * 实现功能:通过epoll,处理多个socket请求 * 监听一个端口,监听到有链接时,添加epoll_event * * 命令行下 telnet localhost 3304 */#include #include #i
2013-12-12 18:13:23 3357
原创 c++ primer总结小点
1、关于变量的初始化:如果一个变量在全局内定义的,那么系统会保证给他提供初始值0。如果变量在局部内定义的,或是通过new表达式动态分配的,则系统不会向他提供初始值0。这些对象被称为未初始化的。未初始化的对象不是没有值,而是他得值是未定义的。(与它相关联的内存区中含有一个随机的位串,可能是以前使用的结果。)因为未初始化对象是个常见的错误,而且很难发现,所以,一般建议为每个被定义的对象提供一个初始
2013-11-13 10:53:29 1605
原创 网络套接字socket
一、socket建立的客户端和服务器端图示:二、注意事项:1、大小端:因为不知道发送端机器使用的字节序是否和接收端机器使用的字节序相同,所以发送前都将其转换为网络字节序(大端字节序),接受时在讲网络字节序转换为本机字节序。发送端:在发送非字符串的类型(如整型)时,要注意在发送前使用htonl或者htons将其本机字节序(可能大端,也可能小端)转换为网络字
2013-11-13 10:49:26 1574
原创 C++ virtual相关
对于一个非虚函数的调用,编译器在编译时刻选择被调用的函数。而虚函数调用的决定则要等到运行时刻。在执行程序每个调用点上,系统根据被调用对象的实际基类或派生类的类型来决定选择哪一个虚拟函数实例。
2013-10-22 13:56:03 798
原创 C++两种内存分配方式基础
静态与动态分配内存的两个主要区别:1、静态对象是有名字的变量,我们直接对其进行操作。而动态对象是没有名字的变量,我们通过指针间接地对他进行操作。int ival = 123;2、静态对象的分配与释放由编译器自动处理,程序员需要理解这一点,但不需要做任何事情。相反,动态对象的分配和释放,必须由程序员显式的管理。int *pint = new int(1024);或者i
2013-10-18 16:09:33 1467
原创 C++位操作技巧
一、注意事项:a、与:&,两位都为1,才为1;b、或:|,两位都为0,才为0;c、微操作只能用于整形数据,float和double进行位操作时编译器会报错;d、异或:^,两位相同为0,不同为1;e、取反:~,1变为0,0变为1;f、左移:g、右移:>>,各二进制全部向右移位,对于无符号数,低位丢失,高位补零;有符号数个编译器不同,有的补符号位,有的补0;二、技巧用途
2013-10-17 15:36:53 2539
原创 C++ new和delete的相关形式
1、new operator:string *ps = new string("abcd");分配内存+调用构造函数初始化内存中的对象delete的时候:delete(ps);操作是 删除内存+执行析构函数;2、operator new:void *raw = operator new(sizeof(string));只分配内存,不调用构造函数;同c语言中的mallocdelete的时
2013-07-23 09:48:20 762
原创 C++中继承自array不要使用多态
假设如下一种情况:基类---ArrayBase b;继承ArrayBase的子类----ArraySub a;使用上述类的多态函数---fun(const ArrayBase& a){}(注意a是子类,存在多态)假如在fun函数中有操作a[i]需要取得a[i]的地址,数组取地址的方式是sizeof(ArrayBase*i);请看好sizeof中的类型,使用的是基类,因此计算a[i
2013-07-23 09:24:21 801
原创 C++四种强制转换
static_case(obj):和C风格的强转一样;const_case(obj):去掉const的修饰方式;dynamic_case(obj):将基类转换到子类,失败返回空指针(当前指针进行类型转换时)或抛出异常(当对引用进行类型转换时);reinterpret_case(obj):主要用在函数指针类型间的转换;不过很难移植,最好少用;
2013-07-22 18:17:17 1313
转载 [AS3] 移除物件和事件問題
<br />[AS3] 移除物件和事件問題<br />http://www.walkone.com.tw/blog/?user_id=justdoit&subject_id=6521<br />
2010-10-29 12:39:00 795
原创 EXITS等价替换提高效率//////数据库三种模型与RDBMS关系
支持sql的RDBMS同时都支持关系数据库的三种模型外模式对应于视图和部分基本表模式对应于基本表内模式对应于存储文件
2010-09-16 11:19:00 681
原创 数据库三种模型 与 RDBMS关系
<br />支持sql的RDBMS同时都支持关系数据库的三种模型外模式对应于视图和部分基本表模式对应于基本表内模式对应于存储文件<br />
2010-09-16 11:19:00 2375
原创 连接(JOIN)----理论上的
<br /><br />连接:从两个关系的笛卡尔积中选择属性间满足一定条件的元组<br />等值连接:从关系R和S的广义笛卡尔积中选择属性A和B相等的元组<br />自然连接:是一种特殊的等只连接,要求两个关系中进行比较的分量必须有相同的属性列,并且在结果中把重复的属性列去掉<br /> <br />两个关系R和S在做自然连接时,选择两个关系在公共属性上值相等的元组构成新的关系。此时,R中某些元组有可能在S中不存在公共属性上值相等的元组,从而造成R中某些元组有可能在S中不存在公共属性上值相等的元组,从而造成
2010-09-16 10:34:00 852
转载 数据库设计中的一些技巧
1. 原始单据与实体之间的关系 可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。 〖例1〗:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情况表、社会关系表、工作简历表。这就是“一张原始单证对应多个实体”的典型例子。2. 主键与外键 一般
2010-09-15 17:32:00 597
转载 三范式
<br />第一范式(1NF)无重复的列<br />所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。<br /> <br />第二范式(2NF)属性完全依赖于主键[消除部分子函数依赖]<br />第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一地区分。<br /> <br />第三范式(3N
2010-09-15 17:19:00 2783
转载 LAMP Install basing ubuntu
<br />http://forum.ubuntu.org.cn/viewtopic.php?f=43&t=203541<br />http://wiki.ubuntu.org.cn/Apache
2010-09-15 10:53:00 658
转载 sql select 的执行顺序
<br /><br />SELECT语句的执行的逻辑查询处理步骤:<br /> <br />(8)SELECT (9)DISTINCT<br />(11)<TOP_specification> <select_list><br />(1)FROM <left_table><br />(3) <join_type> JOIN <right_table><br />(2) ON <join_condition><br />(4)WHERE <where_condition><br />(5)GROUP BY
2010-09-14 16:19:00 1023
转载 MYSQL优化 1数据库的设计 2系统的用途 3系统的瓶颈
<br /><br />1.数据库的设计 <br />尽量把数据库设计的更小的占磁盘空间. <br />1).尽可能使用更小的整数类型.(mediumint就比int更合适). <br />2).尽可能的定义字段为not null,除非这个字段需要null. <br />3).如果没有用到变长字段的话比如varchar,那就采用固定大小的纪录格式比如char. <br />4).表的主索引应该尽可能的短.这样的话每条纪录都有名字标志且更高效. <br />5).只创建确实需要的索引。索引有利于检索记录,但是
2010-09-14 15:26:00 542
原创 关系数据库的语言 DQL/DML/DDL/DCL/TCL
<br />关系数据库的语言<br />DQL: Data Query Language,<br />Some examples:<br />SELECT - retrieve data from the a database<br /> DML: Data Manipulation Language,<br />Some examples:<br />INSERT - insert data into a table<br />UPDATE - updates existing data within a
2010-09-14 14:15:00 741
转载 mysql join, left join, right join, full join from w3chool
QL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。Join 和 Key有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。请看 "Persons" 表:Id_PLastNameFirstNameAddressCity1AdamsJoh
2010-09-13 17:31:00 881
转载 MySQL的联结(Join)语法
<br /> <br /><br />1.内联结、外联结、左联结、右联结的含义及区别:<br /> <br />在讲MySQL的Join语法前还是先回顾一下联结的语法,呵呵,其实连我自己都忘得差不多了,那就大家一起温习吧(如果内容有错误或有疑问,可以来信咨询:陈朋奕chenpengyi#gmail.com),国内关于MySQL联结查询的资料十分少,相信大家在看了本文后会对MySQL联结语法有相当清晰的了解,也不会被Oracle的外联结的(“+”号)弄得糊涂了。<br /> <br />在SQL标准中规划的(
2010-09-13 16:20:00 437
原创 mysql优化
<br /><br />在LAMP阵营中,MySql占有很大比重,经常都会对数据库进行操作,但若不注意一些细节,很可能导致不必要的麻烦!<br />这里就将谈谈MySql的相关优化问题,主要是从提高MySql数据库服务器的性能的思路进行考虑,主要包含以下8个方面的优化:<br />1、选取最适用的字段属性; <br />2、使用连接(JOIN)来代替子查询(Sub-Queries); <br />3、使用联合(UNION)来代替手动创建的临时表; <br />4、事务; <br />5、锁定表; <br /
2010-09-13 12:16:00 437
转载 sql优化 34条
<br /> <br />我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习、摘录、并汇总部分资料与大家分享!<br /> (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):<br /> ORACLE 的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersecti
2010-09-10 17:49:00 433
转载 sql优化
<br /><br />1.查询的模糊匹配<br />尽量避免在一个复杂查询里面使用 LIKE '%parm1%'—— 红色标识位置的百分号会导致相关列的索引无法使用,最好不要用.<br />解决办法:<br />其实只需要对该脚本略做改进,查询速度便会提高近百倍。改进方法如下:<br />a、修改前台程序——把查询条件的供应商名称一栏由原来的文本输入改为下拉列表,用户模糊输入供应商名称时,直接在前台就帮忙定位到具体的供应商,这样在调用后台程序时,这列就可以直接用等于来关联了。<br />b、直接修改后台—
2010-09-10 17:34:00 454
转载 fastcgi 工作原理
<br />文/phpchina<br /><br />一、FastCGI是什么?<br /> FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail- Over特性等等。<br /> FastCGI的官方站点在http://www.fastcgi.com<br /><br
2010-09-10 17:24:00 873
原创 大流量的网站 建议
<br />对于当今大流量的网站,每天几千万甚至上亿的流量,是如何解决访问量问题的呢?以下是一些总结的方法: <br />第一,确认服务器硬件是否足够支持当前的流量。 <br />普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大,那么必须首先配置一台更高性能的专用服务器才能解决问题,否则怎么优化都不可能彻底解决性能问题。 <br /><br />第二,优化数据库访问。 <br />服务器的负载过大,一个重要的原因是CPU负荷过大,降低服务器CPU的负荷,才能够有效打破瓶颈。而使用静态
2010-09-10 17:18:00 696
原创 web优化
<br /><br />一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是原来简单的html静态网站所能比拟的。<br />大型网站,比如门户网站。在面对大量用户
2010-09-10 17:09:00 573
转载 memcached
<br />一、memcached 简介<br />在很多场合,我们都会听到 memcached 这个名字,但很多同学只是听过,并没有用过或实际了解过,只知道它是一个很不错的东东。这里简单介绍一下,memcached 是高效、快速的分布式内存对象缓存系统,主要用于加速 WEB 动态应用程序。<br />二、memcached 安装<br />首先是下载 memcached 了,目前最新版本是 1.1.12,直接从官方网站即可下载到 memcached-1.1.12.tar.gz。除此之外,memcached
2010-09-10 16:33:00 555
原创 foreach($arr as $key=>$value);foreach($arr as $value);
<br /> <br /> <br /> <br /><?php<br />$arr = array('one'=>'yi', 'two'=>'er', 'three'=>'san');<br /> <br />foreach($arr as $key=>$value)<br />{<br />echo $key;<br />echo '-';<br />echo $arr[$key];<br />echo '-';<br />echo $value;<br />echo '/';<br />}<br />
2010-08-31 15:28:00 1998
原创 php简单数组操作,注意array_values()是重构数组
// 创建一个简单的数组$array = array(1, 2, 3, 4, 5);print_r($array);// 现在删除其中的所有单元,但保持数组本身的结构foreach ($array as $i => $value) { unset($array[$i]);}print_r($array);// 添加一个单元(注意新的键名是 5,而不是你可能以为的 0)$array[] = 6;print_r($array);// 重新索引:$array = array_values($array);$
2010-08-31 15:13:00 6225
转载 MySQL的varchar定义长度到底是字节还是字符
<br /><br />相信这个问题也会困扰不少人,尤其是使用过其它数据库(如Oracle)的人,之前我也没有太在意这个问题,再加上一些书籍和网上的文章讲的不够细致,又没测试过,导致我一直理解错误。下面通过实例来解释,在开始之前先简单介绍下字符和字节的区别。<br />字符 人们使用的记号,抽象意义上的一个符号。一个汉字和英文就是一个字符,如'1', '中', 'a', '$', '¥',…… <br />字节 计算机中存储数据的单元,一个8位的二进制数,是一个很具体的存储空间,如0x01, 0x45, 0
2010-08-30 12:24:00 10290
原创 宠物配对 查询
<br /><br />关于该查询要注意的几件事情:FROM子句列出两个表,因为查询需要从两个表提取信息。 当从多个表组合(联结)信息时,你需要指定一个表中的记录怎样能匹配其它表的记录。这很简单,因为它们都有一个name列。查询使用WHERE子句基于name值来匹配2个表中的记录。 因为name列出现在两个表中,当引用列时,你一定要指定哪个表。把表名附在列名前即可以实现。 <br />你不必有2个不同的表来进行联结。如果你想要将一个表的记录与同一个表的其它记录进行比较,可以将一个表联结到自身。例如,
2010-08-19 17:45:00 1164
转载 mysql 索引的使用
在数据库表中,使用索引可以大大提高查询速度。 假如我们创建了一个 testIndex 表: CREATE TABLE testIndex(i_testID INT NOT NULL,vc_Name VARCHAR(16) NOT NULL); 我们随机向里面插入了 1000 条记录,其中有一条 i_testID vc_Name 555 erquan 在查找 vc_Name="erquan" 的记录 SELECT * FROM testIndex WHERE vc_Name='erquan'; 时
2010-08-19 15:29:00 550
转载 Ubuntu network is unreachable
<br />每次在装ubuntu的时候,如果连上网络,到设置apt源的那步,总要等半天, 所以我就拔掉网线,选择为暂不配置<br /><br />装完之后要第一件事要配置ip,在配置好 /etc/network/interfaces 之后,也配置了 /etc/resolv.conf <br /><br />内网的机器都可以ping通 但是ping 外网的就是不行·~一直提示 network is unreachable<br /><br />在增加一个缺省的网关后 所有问题ok<br /><br />我初学
2010-07-16 17:38:00 1306
转载 The difference between /sbin/sh and /bin/sh
<br />Both /sbin/sh and /usr/bin/sh shells are Bourne shells. <br /><br />The difference is that /sbin/sh is statically linked and /usr/bin/sh is <br />dynamically linked. There is also /bin/sh, however /bin is just a symbolic <br />link to /us
2010-06-11 11:34:00 655
原创 中断的响应过程
<br />中断的响应过程:以看书、门铃举例为中断。当有事件产生,进入中断之前我们必须先记住现在看书的第几页了,或拿一个书签放在当前页的位置,然后去处理不同的事情(因为处理完了,我们还要回来继续看书):电话铃响我们要到放电话的地方去,门铃响我们要到门那边去,也说是不同的中断,我们要在不同的地点处理,而这个地点通常还是固定的。计算机中也是采用的这种方法,五个中断源,每个中断产生后都到一个固定的地方去找处理这个中断的程序,当然在去之前首先要保存下面将执行的指令的地址,以便处理完中断后回到原来的地方继续往下执行程
2010-06-09 13:52:00 4562 1
原创 C语言实现类中方法 用函数指针在结构体中加入函数
<br />/********* first.h *********/#ifndef __FIRST__H_H#define __FIRST__H_H//打开TYPE__A 或 TYPE__B的作用是相同的//#define TYPE__A#define TYPE__Bchar *my_get_char(char *str);int my_get_int(int in);#ifdef TYPE__Astruct test_st{ int elem; char*
2010-06-09 13:11:00 6818
ffmpeg-4.2.3-win32-static.zip
2020-07-20
GraphEdittbksh.zip
2020-07-20
jsp + mysql零售公司销售信息管理系统
2009-07-21
图书管理系统JAVA版,包括用ROSE作需求分析,建模的UMLmdl文件和用JAVA完整实现的源代码.rar
2009-07-21
如何把每个.c文件分别导出为dll(使用def),假设不同c文件中有同名函数
2015-11-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人