作者: admin

  • centos查看cpu是32位的还是64位

    centos查看cpu是32位的还是64位,用这个命令:

    getconf LONG_BIT
  • CInternetSession 的头文件 

    CInternetSession 的头文件 :

    #include <afxinet.h>

  • VS2013添加自定义资源

    VS2013添加自定义资源,在资源视图上点击右键,添加资源。

    随便选一个,比如bitmap类型,并点击导入。

    在打开的选择文件窗口选择“所有文件类型”

    选择我们要导入的文件,并确定。

    这时会弹出一个圣诞框,要求输入自定义类型名。输入名称后,自定义文件便被导入进来。

  • 记一次误操作EasyBCD造成windows8.1引导丢失的问题

    今晚把ubuntu12.04升级到了14.04,重启后发现ubuntu引导不了,于是进入windows8.1,使用EasyBCD修复了ubuntu的引导。结果由于误操作,把两个引导选项全部弄成了ubuntu,所以,只能进ubuntu了,win8.1进不了了。

    下面说一下解决办法:

    1. 网上下载NTBOOTautofix_2.5.7.exe。进入ubuntu,把NTBOOTautofix随便放入一个分区中。
    2. 使用PE盘进入PE系统,在PE中找到NTBOOTautofix并打开,使用“自动修复”进行修复WIN8.1的引导。修复完成后会提示修复成功。
    3. 重启后直接进入win8.1,在win8.1中重新打开EasyBCD,把多余的启动项删除掉(我这里有2个ubuntu,一个win8.1),然后重新添加ubuntu,最后保存。
    4. 重启后,ubuntu和win8.1的引导都出现了,经测试可以成功引导。

    问题解决。这里没有尝试PE系统是否可以支持USB的U盘。所以直接在ubuntu中把NTBOOTautofix_2.5.7放进去了。这是个好工具。

  • WIN32获取公网IP

    WIN32获取公网IP的代码:

    Utility.h

    #pragma once
    class CUtility
    {
    public:
           CUtility();
           ~CUtility();
    
    public:
            DWORD HttpGet( LPCTSTR lpszFullUrl, char *pBuffer, int iBufferSize);
            void GetPublicIp( TCHAR *pIP, int len);
    };

    Utility.cpp

    #include "stdafx.h"
    #include "Utility.h"
    #include "Transcode.h"
    #include<wininet.h>
    #pragma comment (lib ,"wininet.lib" )  
    
    
    CUtility::CUtility()
    {
    }
    
    
    CUtility::~CUtility()
    {
    }
    
    void CUtility ::GetPublicIp(TCHAR *pIP, int len)
    {
            char szBuffer[1024];
           memset(szBuffer, 0, sizeof( char) * 1024);
           HttpGet( _TEXT( "http://city.ip138.com/ip2city.asp" ), szBuffer, 1024);
    
            char* begin = strstr(szBuffer, "[")+1;
            char* end = strstr(begin, "]");
            int offset = end - begin;
           begin[offset] = '\0';
            char *ip = begin;
    
           std:: wstring wip;
            Transcode::ANSI_to_Unicode(ip, offset, wip);
           
           wcsncpy_s( pIP, len, wip.c_str(), offset);
    }
    
    DWORD CUtility ::HttpGet(LPCTSTR lpszFullUrl, char *pBuffer, int iBufferSize)
    {
            if ( lpszFullUrl == NULL )
                   return 0;
    
            HINTERNET hNet = :: InternetOpen(_TEXT ("Mozilla/5.0 (Windows NT 6.3; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0"),
                   PRE_CONFIG_INTERNET_ACCESS,
                   NULL,
                   INTERNET_INVALID_PORT_NUMBER,
                  0);
            if (hNet == NULL)
           {
                   //TRACE(_T("error: InternetOpen发生异常. 错误代号: %s; 文件: %s; 行: %d/n"), ::GetLastError(), __FILE__, __LINE__);
                   return 0;
           }
    
            HINTERNET hUrlFile = :: InternetOpenUrl(hNet,
                   lpszFullUrl,
                   NULL,
                  0,
                   INTERNET_FLAG_RELOAD,
                  0);
    
            if (!hUrlFile)
           {
                   //TRACE(_T("error:InternetOpenUrl发生异常. 错误代号: %s; 您可能需要添加\"Http://\" 或 \"Ftp://\" 文件: %s; 行: %d/n"), ::GetLastError(), __FILE__, __LINE__);
                   return 0;
           }
    
           ::memset( pBuffer, 0, iBufferSize);
            DWORD dwBytesRead = 0;
            char szTemp[1024] = { 0 };
            DWORD dwTotalReadBytes = 0;
            while (InternetReadFile(hUrlFile, szTemp, sizeof(szTemp) - 1, &dwBytesRead))
           {
                   if (0 == dwBytesRead)
                          break;
                  szTemp[dwBytesRead] = 0; //此处非常重要,缺了这一句可能抓的内容就不正确
    
                   // 缓冲区大小不够时,停止向目的缓冲区复制数据,跳出
                   if (dwTotalReadBytes + dwBytesRead >= ( UINT) iBufferSize)
                  {
                          pBuffer[ iBufferSize - 1] = 0;
                          break;
                  }
    
                  strcat_s( pBuffer, 1024, szTemp);
                   ZeroMemory(szTemp, sizeof (szTemp));
    
                  dwTotalReadBytes += dwBytesRead;
    
           }
    
           ::InternetCloseHandle(hUrlFile);
           ::InternetCloseHandle(hNet);
            return dwTotalReadBytes;
    }
    

  • VC 实现 Url 编码

    VC 实现 Url 编码:(unicode版本)

    CString UrlEncode(CString strUnicode )
    {
            LPCWSTR unicode = T2CW( strUnicode);
            int len = WideCharToMultiByte( CP_UTF8, 0, unicode, -1, 0, 0, 0, 0);
            if (!len)
                   return strUnicode;
            char *utf8 = new char[len + 1];
            char *utf8temp = utf8;
           WideCharToMultiByte( CP_UTF8, 0, unicode, -1, utf8, len + 1, 0, 0);
           utf8[len] = NULL;
            CString strTemp, strEncodeData;
            while (*utf8 != '\0')
           {
                  strTemp.Format( _T( "%%%2x"), (BYTE )*utf8);
                  strEncodeData += strTemp;
                  ++utf8;
           }
    
            delete[]utf8temp;
    
            return CString(strEncodeData);
    
    }
  • VC使用CURL静态库

    VC使用CURL静态库:

    使用CURL静态库的时候,要在VS中预处理器中添加宏:CURL_STATICLIB

    否则会报无法解析的xxx函数,即,未找到静态库里的函数。

  • mysql中查询重复的记录

    mysql中查询重复的记录

    SELECT username, COUNT(*) AS COUNT FROM honghai_user GROUP BY username HAVING COUNT>1; 

  • ThinkPHP使用PHPMailer发送邮件

    1、把PHPMailer.class.php, pop3.class.php, smtp.class.php三个文件放入ThinkPHP\Library\Vendor\PHPMailer目录下

    2、项目目录下,Common文件夹里建立functions.php, 写入下面代码:

    <?php
       
    function SendMail($address,$title,$message)
    {
         import('Vendor.PHPMailer.PHPMailer');
         $mail=new PHPMailer();   
         $mail->PluginDir=THINK_PATH . 'Library/Vendor/PHPMailer/';  
         // 设置PHPMailer使用SMTP服务器发送Email   
         $mail->IsSMTP();  
         $mail->Port = 25;    
         // 设置邮件的字符编码,若不指定,则为'UTF-8'   
         $mail->CharSet='UTF-8';    
         // 添加收件人地址,可以多次使用来添加多个收件人   
         $mail->AddAddress($address);    
         // 设置邮件正文   
         $mail->Body=$message;    
         // 设置邮件头的From字段。   
         $mail->From=C('MAIL_ADDRESS');    
         // 设置发件人名字   
         $mail->FromName='inrn';    
         // 设置邮件标题   
         $mail->Subject=$title;    
         // 设置SMTP服务器。   
         $mail->Host=C('MAIL_SMTP');
         // 以html方式发送 
         //$mail->IsHTML(true);     
         // 设置为"需要验证"  
         $mail->SMTPAuth=true;    
         // 设置用户名和密码。   
         $mail->Username=C('MAIL_LOGINNAME');   
         $mail->Password=C('MAIL_PASSWORD');    
         // 发送邮件。   
         return($mail->Send());
    }
    ?>

    3、项目配置文件夹(Conf)下config.php里写入:

    <?php
    return array(
         //'配置项'=>'配置值'  
         'MAIL_ADDRESS'=>'1000@inrn.cn', // 邮箱地址
         'MAIL_SMTP'=>'smtp.inrn.cn', // 邮箱SMTP服务器
         'MAIL_LOGINNAME'=>'1000@inrn.cn', // 邮箱登录帐号
         'MAIL_PASSWORD'=>'521a3344', // 邮箱密码    
    );

    注意:MAIL_LOGINNAME一定要写成和邮箱地址一样的。 否则会出错(Could not authenticate.)

    4、在Action中使用下面代码发送邮件:

    SendMail($email,"邮件标题","邮件正文");

  • MYSQL 生成时间戳函数

    MYSQL 生成时间戳函数

    UNIX_TIMESTAMP()