标签归档:windows

RSS feed of windows

最后更新于 .

承接上一篇文章 《在windows下搭建mysql,php,apache环境(1)-mysql的部署》,我们现在来部署php

二.php
    (1)安装
        a)最好下载压缩包而不是安装版,因为安装版会少很多dll
        b)直接将下载好的php包copy到C:/根目录,更名为php,如我的目录就是C:/php/。
    (2)配置
        a)打开php目录,会发现两个文件,php.ini-recommended和php.ini-dist,区别如下:
        php.ini-recommended的安全等级比php.ini-dist高。默认是把display_errors 设置为 off,将 magic_quotes_gpc 设置为Off等等。而相对的php.ini-dist都是默认的配置。 所以说,如果你只是想进行web测试和普通开发,使用php.ini-dist,不然就是用php.ini-recommended
        在这里我们选择php.ini-dist ...

最后更新于 .

之前有搭建过mysql+php+apache在windows下的环境,为了方便以后自己和大家查阅,所以,重新做了一遍。目标是保证wordpress可以在上面正常的运行起来,至于discuzz的话,可能还需要对php进行一些特殊的配置。
让我们按照mysql -> php -> apache的顺序来介绍吧,因为这样配置起来会更方便些。
其中版本号分别为:

mysql:Ver 14.12 Distrib 5.0.67, for Win32 (ia32)
apache:Ver 2.2.14-win32-x86-no_ssl
php:Ver 5.2.11-Win32

一、mysql
    (1) 安装
        双击运行

mysql1
        选择 Custom 自定义安装,如下图所示:

Snap2
        把开发环境也装上,如下图所示:

Snap4
        待文件复制安装完毕后,进行 MySQL 设置界面,单击 Finish ...

最后更新于 .

之前已经在博客里写过一篇关于限速的文章,这几天给别人用时发现,用C方式的结构式代码的确不方便别人使用,所以就用C++封装了一下,用起来也简单了很多。
主要实现了:
1.对速度的限制
2.动态调整速度的侦测周期,减少由于限速而带来的对CPU的消耗。
希望大家批评建议。

使用方法很简单,如下:

#include <iostream>
#include "timelimit.h"
using namespace std;
int main()
{
    CTimeLimit timelimit;
    //设置每秒最多10个
    timelimit.Init(10);
    while(1)
    {
        timelimit.DetectAndLimit();
        printf("%d\n",timelimit.Speed());
    }
}

源代码下载

 

最后更新于 .

呵呵,这里说的不是在终端中怎么用tabnew来打开一个新标签,而是说怎么在windows下,用gvim新打开的文件,会默认在gvim的标签页中打开。 这里主要有两种方法,其实原理是一样的(即gvim执行命令的参数是一样的),只是用windows的实现有些区别。

一.利用windows的发送到。

像emeditor之类的编辑器都会在安装之后默认在发送到里面添加自己的快捷方式,而vim是在右键菜单里面直接有一个用vim编辑,而为了不和这个默认的快捷方式冲突,我们就用这个发送到来实现我们想要的在标签页中打开新文件的功能。

1)开始->运行,输入sendto

2)在弹出的窗口中,单击右键,选择新建快捷方式。

3)在需要填入项目位置处(即gvim.exe的路径,以及执行参数),输入

"C:\Vim\vim72\gvim.exe" -p --remote-tab-silent "%*"

注意:需要在路径上加上引号,如默认的安装路径就是在C:\Program Files下,那么需要在路径上加上引号,即

"C:\Program FilesVim\vim72\gvim.exe" -p --remote-tab-silent "%*"

4)输入名字,Vim标签页

5)同时选中两个文件 ...

最后更新于 .

STL比较出名的有如下三个:

一个是SGI STL。STL之父离开HP之后就去了SGI(当然不是去搞侏罗纪公园),然后和Matt Austern这些STL大牛一起搞了SGI STL。SGI STL技术比较新,很规范(但是代码读起来未必好懂) 像concept checking这些技术用的不少,boost graph library的想法也是在这其中产生的。后来有人觉得sgi stl很好,兼容性不够(其实现在已经很不错了),就弄了个stlport项目,顺便提供咨询服务赚点小钱。

一个是RougeWave STL,是Borland C++ Builder 5.0及以前版本采用的STL实现(6.0以后改用stlport)。RougeWave公司在C++程序库领域应该说是鼎鼎大名,在C++标准化过程中出力甚多(比如IOStream)。不过这个STL版本似乎老了点,更新不太勤快,关键是贵(RougeWave 的东西一向如此),所以被Borland一脚踢了。

一个是Visual C++里的STL,作者P.J. Plauger,所以一般也说pj stl。其实这份STL是他公司的产品(他这个公司一共也就3个人,所以人均GDP一定很高),不过他跟MS的关系实在是好得有点古怪 ...

最后更新于 .

C++的string提供了replace方法来实现字符串的替换,但是对于将字符串中某个字符串全部替换这个功能,string并没有实现,我们今天来做的就是这件事。
首先明白一个概念,即string替换所有字符串,将”12212″这个字符串的所有”12″都替换成”21″,结果是什么?
可以是22211,也可以是21221,有时候应用的场景不同,就会希望得到不同的结果,所以这两种答案都做了实现,代码如下:

#include   <string>   
#include   <iostream>   
using   namespace   std;   
string&   replace_all(string&   str,const   string&   old_value,const   string&   new_value)   
{   
    while(true)   {   
        string::size_type   pos(0);   
        if(   (pos=str.find(old_value))!=string::npos   )   
            str.replace(pos,old_value.length(),new_value);   
        else   break;   
    }   
    return   str ...

最后更新于 .

在代码编写中,我们经常需要用到int或者long等类型转化成特殊进制的字符串的问题,当然C里面提供了一些转义符来提供特殊进制输出,如%02x是输出16进制(只是针对一个char,08x是一个int),但是还是需要一个通用的函数来实现一个完整的功能比较好。

例如:转化成2进制

实际上就是每次右移一位,如果8进制就右移3位,16进制就右移4位,当然,mask也要对应更改。


//最左边是第一位
string ChangeTo2Left(unsigned long long flag)
{
string str="";
char temp[2];
unsigned long long mask = 1;
int tempFlag=0;
for(int i=0;i<64;++i)
{
tempFlag=(flag>>i) & mask;
snprintf(temp,sizeof(temp),"%d",tempFlag);
str.append(temp);
}
return str ...

最后更新于 .

在程序中,我们经常性的会使用到时间格式的转化,比如讲time_t转化成string,或者反过来转,下面就是实现的代码。

分为 2009-3-24 和 2009-3-24 0:00:08两种时间格式。
时间格式:2009-3-24 :

#include <sys/time.h>
/*
    string to time_t
    时间格式  2009-3-24
*/
int API_StringToTime(const string &strDateStr,time_t &timeData)
{
    char *pBeginPos = (char*) strDateStr.c_str();
    char *pPos = strstr(pBeginPos,"-");
    if(pPos == NULL)
    {
        return -1;
    }
    int iYear = atoi(pBeginPos);
    int iMonth = atoi(pPos + 1);

    pPos = strstr ...

最后更新于 .

经常会用到gbk和utf8互转的情况,下面的代码就是实现了这样的功能,希望对大家有用~  

//GBK 2 UTF8
int API_Gbk2Utf8(const char *szSource, string &strDest)
{
    char szUniString[strlen(szSource)*2];
    int iLen = string_gbk2unicode(szSource, szUniString, strlen(szSource));
    unsigned char pTemp[4] = {0};
    unsigned short iTemp;
    char *pUTFString = (char *)malloc(sizeof(szUniString) *2+1);
    int pos=0;
    for (int i=0; i<iLen; i++)
    {
        iTemp =(((unsigned char)szUniString ...

最后更新于 .

之前已经详细的介绍了在 vim中使用ctags ,这篇文章我们就来详细介绍一下如何在vim中使用cscope。

首先,我们还是了解一下什么是cscope。

简单来讲,cscope主要用来协助浏览C/C++语言,他的功能要强大于ctags,不仅支持变量/函数的定义查询,还记录了函数的调用处查询等功能,所以也有说法称cscope的诞生就是为了取代ctags。

无论这个说法是否有据可依,对使用方来说,当然是希望功能越强大方便越好啦,所以这也是我们为什么讲ctags和cscope都装上的原因啦。

第二,我们来说一下vim的支持。

cscope没有ctags那么幸运,cscope在大部分的linux下的vim中是没有提供支持的(但是在windows下的gvim都提供了支持),所以,如果你打算要在linux下面使用vim+cscope,那么1,你要下载安装cscope。2,你要重新编译vim,加上支持选项: --enable-cscope 。

当然,cscope也提供了windows版(否则windows下gvim怎么和cscope搭配嘛...),分别下载地址如下:

cscope(linux):http://cscope.sourceforge.net/
cscope(windows):http://sourceforge.net/projects/mslk/files/

当然,安装的最后一步就是,不要忘记讲cscope放进的环境变量里!

第三,好了 ...