预览模式: 普通 | 列表

msys+mingw的基本配置

0.本文中的程序安装路径
MinGW:D:\Tools\MinGW
msys:D:\Tools\MinGW\msys\1.0
此时,MSYS的"/"目录对应"D:\Tools\MinGW\msys\1.0"

1.在MSYS中指定MinGW的位置
修改:/etc/fstab
D:\Tools\MinGW\ /mingw

2.MSYS文字彩色
修改:/etc/profile
加上:alias ls='ls --show-control-chars -F --color=tty'

3.中文乱码
修改:/etc/inputrc.default 和 ~/.inputrc
set meta-flag on
set input-meta on
set output-meta on
set convert-meta on

分类:Linux | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 22

几个日期相关的shell函数

#@brief:检查指定年份是否为闰年
#@param1:YYYY格式的年份
check_leap()
{
    #http://baike.baidu.com/view/29649.htm
    #四年一闰,百年不闰,四百年再闰
   
    # 测试:
    # year=2005;
    # check_leap $year;
    # if [ $? -eq 0 ] ; then
    #   echo $year is leap year;
    # else
    #   echo $year is not leap year;
    # fi;
   
    mod4=$(($1 % 4));
    mod100=$(($1 % 100));
    mod400=$(($1 % 400));
    if [ $mod400 -eq 0 -o $mod100 -ne 0 -a $mod4 -eq 0 ] ; then
        return 0;
    fi;
   
    return 1;
}
 
#@brief:获取指定月的天数
#@param1:YYYYMM格式的月份
get_days_in_month()
{
    # 测试:
    # month=200502;
    # days=`get_days_in_month $month`;
    # echo $month has $days days.
 
    YYYY=`echo $1 | awk '{print substr($1,1,4)}'`;
    MM=`echo $1 | awk '{print substr($1,5,2)}'`;
   
    days=0;
    case "$MM"in
        01|03|05|07|08|10|12)
            days=31;
        ;;
        02)
            check_leap $YYYY;
            if [ $? -eq 0 ] ; then
                days=29;
            else
                days=28;
            fi;
        ;;
        04|06|09|11)
            days=30;
        ;;
        *)
            days=0;
        ;;
    esac;
   
    echo $days;
}
 
#@brief:返回指定日期前一天的日期
#@param1:YYYYMMDD格式的日期
get_yesterday()
{
    # 测试:
    # day=20120101;
    # yesterday=`get_yesterday $day`;
    # echo yesterday is $yesterday;
   
    YYYY=`echo $1 | awk '{print substr($1,1,4)}'`;
    MM=`echo $1 | awk '{print substr($1,5,2)}'`;
    DD=`echo $1 | awk '{print substr($1,7,2)}'`;
   
    days_in_month=`get_days_in_month ${YYYY}${MM}`;
    DD=$(( $DD-1 ));
    if [ $DD -eq 0 ] ; then
        DD=$days_in_month;
        MM=$(( $MM-1 ));
        if [ $MM -eq 0 ] ; then
            MM=12;
            YYYY=$(($YYYY-1));
        fi;
    fi;
   
    echo "${YYYY}${MM}${DD}";
}
 
#@brief:检查指定日期是否合法
#@param1:YYYYMMDD格式的日期
check_date()
{
    # 测试:
    # day=20111232;
    # check_date $day;
    # if [ $? -eq 0 ] ; then
    #   echo $day is a valid date.
    # else
    #   echo $day is a invalid date.
    # fi;
   
    if [ $# -lt 1 ] ; then
        return 1;
    fi;
   
    numberstr=`echo $1 | grep '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'`;
    if [ -z "${numberstr}" ] ; then
        return 1;
    fi;
   
    length=`echo $1 | awk '{print length($1)}'`;
    if [ $length -ne 8 ] ; then
        return 1;
    fi;
   
    YYYY=`echo $1 | awk '{print substr($1,1,4)}'`;
    MM=`echo $1 | awk '{print substr($1,5,2)}'`;
    DD=`echo $1 | awk '{print substr($1,7,2)}'`;
    if [ $YYYY -lt 1000 -o $YYYY -gt 9999 ] ; then
        return 1;
    fi;
   
    if [ $MM -lt 1 -o $MM -gt 12 ] ; then
        return 1;
    fi;
   
    days_in_month=`get_days_in_month ${YYYY}${MM}`;
   
    if [ $DD -lt 1 -o $DD -gt $days_in_month ] ; then
        return 1;
    fi;
   
    return 0;
}

以上脚本在Cygwin和HP-UX上测试通过。

分类:Linux | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 40

DirectShow.5 找不到Qedit.h的一种解决方法

// Microsoft DirectX 9.0 SDK Update (April 2005)之后,DirectShow
// 已经被集成到了Windows SDK中,但是有些版本的SDK缺少Qedit.h
 
// 解决方法为:
// #import "qedit.dll" raw_interfaces_only named_guids
// using namespace DexterLib;
 
// 见如下完整示例:
#include <atlbase.h>
 
#import "qedit.dll" raw_interfaces_only named_guids
using namespace DexterLib;
 
#include <assert.h>
 
int main()
{
    CoInitialize(NULL);
 
    //ISampleGrabber 的声明本来在Qedit.h
    //现在包含在#import "qedit.dll"指令生成的qedit.tlh
    CComPtr<ISampleGrabber> pSampleGrabber=NULL;
    HRESULT hr=pSampleGrabber.CoCreateInstance(CLSID_SampleGrabber);
    assert(hr==S_OK);
    pSampleGrabber.Release();
 
    CoUninitialize();
    return 0;
}
 
// 参考文章:
// http://social.msdn.microsoft.com/Forums/en-US/windowsdirectshowdevelopment/thread/2ab5c212-5824-419d-b5d9-7f5db82f57cd
// http://www.cnblogs.com/taoxu0903/archive/2008/06/09/1216390.html
分类:Win32/C++ | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 120

原因是缺少中文字体,复制truetype中文字体(比如simsun.ttc)到/usr/share/fonts/truetype目录即可。

备注:
a.IP地址的命令设置方法(临时):
1.用su切换到root执行下列命令手动设置:
ifconfig eth0 <ip> netmask <掩码>
route add default gw <网关ip>

2.或者用下列命令自动获取:
dhclient eth0

b.安装图形界面工具
 apt-get install network-manager-gnome

 

分类:Linux | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 331