自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

冷寒生读书笔记

所谓读书笔记,是自己用文字的方式为自己解释

  • 博客(152)
  • 收藏
  • 关注

原创 FreeBSD安装python网络库 - urllib3

root@iZ234nvf986Z:/usr/ports # pkg search urllib3py27-urllib3-1.22 HTTP library with thread-safe connection pooling, file post, and morepy36-urllib3-1.22 HTTP library with ...

2018-06-04 19:25:56 594

转载 FreeBSD本地化

查看系统支持的所有地域$ locale -a显示所有系统支持的地域化信息,结构为语言码_国家码.编码方式,如:zh_CN.GB18030zh_CN.GB2312zh_CN.GBKzh_CN.UTF-8附,查看当前地域配置$ localeshell配置文件方案 每个用户可能需独立配置sh 修改~/.profile文件,增加LANG=zh_CN.U...

2018-06-04 17:11:09 940

转载 欢迎使用CSDN-ma12rkdown编辑器

你可能会因为种种原因而想在 FreeBSD 服务器上彻底禁用 sendmail,那么你可以尝试这样∶1,如果你不想重新启动服务器的话(应急措施)∶# killall sendmail2,如果你想让 sendmail 在启动的时候就不做任何行为的话,你需要把以下这几行加入到 /etc/rc.conf 中∶sendmail_enable="NONE"sendmail_submit_...

2018-05-16 17:16:17 250

原创 MFC单文档视图拆分窗口

第一步:准备2个视图类(如CTViewOne, CTViewTwo)第二步:在CMainFrame类的头文件中添加数据成员变量://MainFrm.hprotected: CSplitterWnd m_wndSplitter;第三步:重载CMainFrame类的OnCreateClient函数:BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT l

2015-05-03 22:45:34 1908

原创 DLL中使用FindResource失败的问题

// GDI+ Image通过资源ID构建对象// 从资源里读取图像,保存到Gdiplus::Image对象BOOL CGui::ImageFromIDResource(UINT nID, LPCTSTR sTR, OUT Gdiplus::Image * & pImg){ HINSTANCE hInst = AfxGetResourceHandle(); HRSRC hRsr

2015-05-02 00:11:46 5778

原创 GDI+ 平铺图像

CDC *pDC = GetDC();Gdiplus::Graphics graphics(pDC->m_hDC);Gdiplus::Image SImage(L"F:\\bg.png");Gdiplus::TextureBrush textureBrush(&SImage, Gdiplus::WrapModeTile);CRect rectWindow;GetWindowRect(

2015-05-01 22:05:51 564

原创 VC对话框嵌套对话框

m_ToolBarDlg.Create(CToolBarDlg::IDD, this);m_ToolBarDlg.ModifyStyle(m_ToolBarDlg.GetStyle(), WS_CHILD, 0);m_ToolBarDlg.SetParent(this);m_ToolBarDlg.ShowWindow(SW_SHOW);

2015-05-01 21:27:07 613

原创 GDI+裁剪图片

1.首先在VC下创建一个对话框程序。 2.在stdafx.h头文件中加入如下代码:#include <comdef.h>//#ifndef ULONG_PTR//#define ULONG_PTR unsigned long*//#endif#include <gdiplus.h>#pragma comment(lib, "gdiplus.lib")3.在对话框类中创建2个变量:Gdiplu

2015-05-01 20:53:57 2343

原创 VS编译duilib项目时候的错误解决方法整理

找不到Riched20.libVS2013编译duilibv1.1,“找不到Riched20.lib”的问题 http://blog.csdn.net/tg2003/article/details/44841605“IDispatchEx”: 重定义;不同的基类型‘ICanHandleException’ : redefinition; different basic types修改UIFlash

2015-04-03 23:01:08 3484 1

原创 Windows环境下的编程字体(DroidSansMono)

DroidSansMono.ttf字体效果

2015-04-03 21:34:01 2915

原创 VS2013编译duilibv1.1,“找不到Riched20.lib”的问题

打开DuiLib工程的属性页,进入“链接器” - “输入”选项界面。删除Debug/Release/UnicodeDebug/UnicodeRelease几个配置中,“附加依赖项”中的“Riched20.lib”(如图1)。 图1打开UIRichEdit.cpp定位到如下源代码:cpp // Create Text Services component if(FAILED(Crea

2015-04-03 00:52:22 4345 5

转载 开启Visual Studio 2010时出现的加载错误解决方案

问题一:未能正确加载“VSTS for Database Professionals Sql Server Data-tier Application" 包。解决办法:打开cmd,输入regsvr32  jscript.dll,备注:jscript.dll的位置一般在:C:\Windows\System32问题二:未能正确加载”RadLangSvc.Package, RadLang

2013-04-28 20:48:04 2870

转载 在C#中使用CURL

private string args = "";         ///         /// 参数        ///         public string Args { get { return args; } set { args = value; } }        ///         /// 设置参数        ///

2012-07-07 01:17:32 18563

原创 查看和删除不重复记录

<br />uid为重复关键字<br /><br />select * from TableName <br />where [uid] in (select [uid] from TableName group by [uid] having count([uid])>1) and id not in (select min(id) from TableName group by [uid] having count([uid])>1)<br /><br />delete from Table

2011-04-16 00:42:00 640

原创 为uThreadPool增加线程池等待功能

<br />unit uThreadPool;{ aPool.AddRequest(TMyRequest.Create(RequestParam1, RequestParam2, ...)); }interfaceuses Windows, Classes;// 是否记录日志// {$DEFINE NOLOGS}type TCriticalSection = class(TObject) protected FSection: TRTLCriti

2011-04-15 12:42:00 1585 1

原创 在Delphi中WaitForMultipleObjects的使用

<br />procedure ThreadTest;stdcall;var Handles:TWOHandleArray; //Handle:THandle; Test:TTest; i:Integer;begin for i := 0 to 10 do begin Test := TTest.Create(False); Handles[i] := Test.Handle; end;

2011-04-14 12:10:00 2971

原创 在TThread对象中使用互斥量

<br />用TThread以数组的方式做了个线程池,但在TThread中需要累加一个数值,如果未使用互斥量的话,那个数值可能一直累加不上去。<br />分别参考了http://www.cnblogs.com/railgunman/archive/2010/11/06/1870867.html和http://www.cnblogs.com/del/archive/2009/02/13/1390295.html,可以通过Win32函数CreateMutex和使用Delphi的TMutex来实现。<br /> 

2011-04-14 01:14:00 1155

转载 关于MSSQL导入导出时主键与约束丢失的问题解决

<br />导入数据时,使用默认选项,会丢失主键、约束、默认值等属性,按如下步骤操作:<br /><br />-->导出向导 <br />-->选择数据源 <br />-->选择目的 <br />-->指定表复制或查询:不要使用默认选项,选择“在SQL Server数据库之间复制对象和数据” <br />-->选择要复制的对象:在本页中根据需要选择相应的开关项,对于列约束,必须选择“扩展属性”,若去掉“复制所有对象”,可以选择你要导出的表或对象 <br />-->其余按默认步骤即可

2011-04-13 09:57:00 1129

原创 使用libcurl回调函数要注意的问题

<br />static size_t geturl_callback( void *ptr, size_t size, size_t nmemb, void *stream )<br />{<br />    int nsize = size * nmemb;<br />    std::string *strdata = (std::string*) stream;<br />    if (strdata)<br />    {<br />        strdata->ap

2011-04-13 07:40:00 2954 1

原创 delphi调用vc编写的DLL应注意的问题

<br />VC:<br /> <br />.h<br />extern "C" _declspec(dllexport) bool GetUrl( const char *url, const char *savepath );<br /> <br />Delphi:<br />function GetUrl( Url:PChar; SavePath:PChar ):Boolean;cdecl external 'http.dll' name 'GetUrl';<br /> <br /> 

2011-04-12 22:31:00 1005

原创 “堆被损坏”这个让人崩溃的问题

<br />用libcurl的代码直接在exe中运行没丝毫问题,但一放到dll中就问题百出,先是编译出的dll在depend中提示缺少msjava.dll,接着不管在debug或release下调试都提示“堆被损坏”,差点儿被整崩溃了,最后的解决办法让人非常之惊讶!<br /> <br />以下引用自http://hi.baidu.com/yhustc/blog/item/04f74c1b073da5d1ac6e75d3.html/cmtid/ba14620382936683d53f7caf<br /> <

2011-04-12 22:13:00 2329

原创 使用libcurl库获取网页源码

libcurl真是个好东西,不过我以前C/C++学得太不扎实,以致想写个返回字符串的函数都为难。由于不同网页的大小不一,有可能有的网页只有十来K,有的网页却有200多K,如果分配一个200多K的静态变量,这样又太不划算了,何况还没测试频繁分配这样大的静态变量会有什么后遗症,所以只好将下载的网页源码保存到文件了。下面是一个最简单的用libcurl库获取网页源码并保存到文件的实例:#include #include "curl/curl.h"#pragma comment(lib, "ws2_32.li

2011-04-12 18:19:00 2512 1

原创 很好很强大的cUrl库

<br />貌似以前使用过cUrl,不过没读过源码,记得以前到是看过wGet的源码,不过那个程序是单线程的。这次无意中发现cUrl的源码居然有Windows版的,到http://curl.haxx.se/下了个最新版的源码下来,源码是用VC6编译的,我在VS2005下重新进行编译,居然只有一个警告。<br /> <br />cUrl的实现代码是放在动态库中,将动态库以静态方式编译生成libcurl.lib,然后将cUrl源码目录下的“include/curl”文件夹复制到自己的项目下(如图1)。<br />

2011-04-12 05:59:00 7810

原创 MySQL和MSSQL中优化随机查询速度

<br />经测试,在MSSQL中用以下方法随机读取3W多条数据,只用了1-2秒。而在实际运用中,肯定是不会随机读取这么多数据的<br /> <br />MSSQL<br /><br />select id from tablename where id >= (select floor(rand() * ((select max(id) from tablename) - (select min(id) from tablename)) + (select min(id) from tablename

2011-04-11 16:53:00 912

原创 还是获取网页的问题,不过是多线程

<br />09年我在这个问题上折腾了大半年,还因此写了篇博文[这下该不会阻塞了吧],最初的是想实现多线程下载网页源码,但经过对HTTP协议的学习,发现只有支持断点继传的网站才用得上多线程下载,因此又把需求放在批量快速下载网页源码上,比如我同时需要访问100个网页,如果用IdHttp就头大了,Idhttp就连访问302页面也会出现异常,调试起来很麻烦。而用自己写的TWinHttp类,recv函数阻塞的问题是能解决了,但如果短时间频繁的获取网页源码,50%以上的访问都会出现connect失败和recv超时

2011-04-08 05:13:00 1292 1

原创 MFC单文档视图中修改窗体标题、窗体样式

<br />有人说聪明的程序员用Delphi,我承认我并不聪明,虽然Delphi确实很好用,但实在是受不了Delphi的那个编译器,在编辑器中鼠标光标到处乱跑,除非需要的程序是急用,否则我的第一选择不是Delphi。有人也说真正的程序员用VC,当然,我也不得不承认自己压根儿就不是一个程序员,只是一个喜欢编程又上不了档次的准菜鸟,不过我偶尔也会拿起VC玩玩。<br /> <br />在Delphi中要画一个界面,只需要鼠标一拖一拉就搞定了,而VC呢?让我们来画一个简单的界面吧!界面很简单,一个按钮,一个支持多

2011-04-02 02:22:00 2267

原创 CHttpFile获取网页源码

<br />运行环境:VS2005, ANSI字符集<br /> <br />void CHelloView::OnBnClickedButton1()<br />{<br />    // TODO: 在此添加控件通知处理程序代码<br />    CInternetSession Sess;<br />    CHttpFile *Http = NULL;<br />    CString HtmlSource = "";<br />    char Buf[1024];<br

2011-04-02 00:38:00 2094

原创 使用cnvcl中的TCnIp提取IP段

var    IP:TCnIp;    i:Integer;    CurIP:string;begin    IP := TCnIp.Create(nil);    IP.IPAddress := '192.168.0.1';    CurIP := IP.IPAddress;    while CurIP '192.168.255.255' do    begin        mmo1.Lines.Add( CurIP );        CurIP :=

2011-03-29 05:58:00 894

原创 在socket中用http代理访问网页的关键问题

<br />以前关注过在socket使用http代理访问网页的问题,原理很简单,就是非代理情况下connect的是目标网页的IP和端口,而使用代理则connect代理IP和端口,连接成功后就直接send数据了。<br /> <br />原理清楚,但一直没应用过,今天正好需要就测试了一下,结果在http代理可用,connect正常的情况下,send数据后总是返回http/1.1 400。最后在一个帖子中找到了原因所在,其实使用http代理来发送GET或POST,其包的格式与非代理的GET或POST有一些区别,

2011-03-29 05:35:00 1499

原创 在Delphi中操作Mysql

<br />以前在VC中使用过MySQL,当时是找的一个现成的C++ MySQL类。最近在Delphi中又需要操作Mysql,最初找了个封闭过的类,但已经是七八年以前的程序了,我机器上装的是MySQl5.1,使用了5.1中的libmySQL.dll(2.25MB)。连接正常、查询一个字段正常,但查询两个字段就只能获取第一个字段的值,读第二个字段的值就程序异常。<br /> <br />没办法,又重新找了个接口,不过没有封闭,只有自己慢慢学着调用了。<br /> <br />http://www.audio-

2011-03-29 00:53:00 1751

原创 WinAPI: IsIconic、IsZoomed - 分别判断窗口是否已最小化、最大化

//声明:<br />IsIconic(<br />  hWnd: HWND {窗口句柄}<br />): BOOL;<br /><br />IsZoomed(<br />  hWnd: HWND {窗口句柄}<br />): BOOL;<br />

2011-03-27 21:40:00 1641 1

原创 在进行文字自绘时,自动换行打印

<br />DrawText( Canvas.Handle, PChar( s ), Length( s ), rect, DT_WORDBREAK );

2011-03-24 22:32:00 788

原创 Delphi中WebBrowser判断页面及JS是否加载完成

<br />时间很完了,但问题总算解决了。<br /> <br />在一个程序中需要判断WebBrowser打开的页面是否加载完成,通常的做完是使用Busy属性,代码如下:<br /> <br />while WebBrowser1.Busy do<br />    Application.ProcessMessages;<br /> <br />这个访问对于访问纯Html的页面时是一点儿问题都没有的,但有些页面在设计时为了不影响打开速度,是让html代码优先显示,然后再运行js代码或框架代码,由于我要访问

2011-03-19 04:35:00 7093 2

原创 idhttp用代理IP获取网页源码

<br />procedure TForm1.btn1Click(Sender: TObject);<br />var<br />    Http:TIdHTTP;<br />begin<br />    Http := TIdHTTP.Create(nil);<br />    Http.ProxyParams.ProxyServer := '91.211.141.249'; //代理IP<br />    Http.ProxyParams.ProxyPort := 8080;<b

2011-03-18 13:52:00 2279

原创 一个等待Winexec执行完成后再继续执行后面代码的函数

//CMD 要执行的文件路径//Visiable 是否显示窗口Function WinExecExW(CMD:Pchar; Visiable:integer):DWORD;var    StartupInfo : TStartupInfo;    ProcessInfo : TProcessInformation;begin    FillChar( StartUpInfo, SizeOf

2010-03-22 20:54:00 4251

原创 FreeBSD启动和重启nginx

# /usr/local/nginx/sbin/nginx -s stop  #停止# /usr/local/nginx/sbin/nginx  #启动

2010-03-21 16:07:00 2361

原创 VSFTPD无法上传下载的解决方法

修改文件夹权限:chmod 777 /home/wmzhi修改文件夹属主:chown wmzhi /home/wmzhi/www

2010-03-21 15:41:00 658

原创 nginx启动、重启、停止脚本

#!/usr/local/bin/bashcase $1 instart)        /usr/local/sbin/nginx;;stop)        killall -9 nginx;;test)        nginx -t -c /usr/local/etc/nginx/nginx.conf;;restart)        ps

2010-03-21 13:45:00 886

原创 FreeBSD查看各分区大小及使用情况命令

df -h

2010-03-21 13:03:00 4490

原创 FreeBSD 安裝 wget

FreeBSD 安裝 wget在 Redhat/Fedora 是預設安裝好 wget,而 FreeBSD 則預設沒有安裝,要在文字模式下載檔案很不便。在 FreeBSD 要安裝 wget 很容易,只要使用 ports 就行了,方法如下:cd /usr/ports/ftp/wgetmake install clean那麼系統就會自動替你完成安裝了。

2010-03-20 17:10:00 1886

空空如也

空空如也

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

TA关注的人

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