<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LANSHUIHAIYU的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/LANSHUIHAIYU</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LANSHUIHAIYU]]></copyright><item><title><![CDATA[银河麒麟V4.0.2安防加固]]></title><link>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/135483347</link><guid>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/135483347</guid><author>LANSHUIHAIYU</author><pubDate>Tue, 09 Jan 2024 16:14:56 +0800</pubDate><description><![CDATA[例如：password  requisite  pam_cracklib.so  retry=3 minlen=10 difok=3 dcredit=-1 ucredit=-1 lcredit=-1。编辑/etc/pam.d/common-password文件，在pam_cracklib.so行末增加以下内容。root_unlock_time 设定root用户锁定后，多少时间后解锁，单位是秒；unlock_time 设定普通用户锁定后，多少时间后解锁，单位是秒；1设置密码复杂度，登录失败锁定用户。]]></description><category></category></item><item><title><![CDATA[利用ADO压缩Access数据库代码]]></title><link>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8724926</link><guid>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8724926</guid><author>LANSHUIHAIYU</author><pubDate>Wed, 27 Mar 2013 09:39:29 +0800</pubDate><description><![CDATA[#include "stdafx.h"
#include 
#include "stdio.h"
#include 
#include 
using namespace std;
/*
	Filepath :数据库文件路径，不包括文件名例如：Filepath="..\\"
	SrcFileName ：源文件名
*/
static bool compressMDB(const std::string]]></description><category></category></item><item><title><![CDATA[类成员函数作为线程函数]]></title><link>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8610260</link><guid>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8610260</guid><author>LANSHUIHAIYU</author><pubDate>Mon, 25 Feb 2013 17:16:13 +0800</pubDate><description><![CDATA[一般情况下，类成员函数不可以作为线程函数，因类成员函数隐含了一个this指针。、
如果一定要作为线程函数，可以有以下两种方案：
1。定义为static类型的函数，去掉this 指针。虽然定义为static类型解决了作为线程的问题，但也带来了一个新的问题。静态成员函数只能访问静态成员。
解决这个问题，在调用类的静态成员函数时，把this指针作为参数传入。并在线程函数中将this指针强制装换位指]]></description><category></category></item><item><title><![CDATA[Radio Button 控件使用]]></title><link>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8602396</link><guid>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8602396</guid><author>LANSHUIHAIYU</author><pubDate>Fri, 22 Feb 2013 14:26:03 +0800</pubDate><description><![CDATA[先为对话框加上2个radio button，分别是Radio1和Radio2。
让Radio1和Radio2如何默认被选上？
关键是选上，“默认”只要放在OnInitDialog()即可。三种方法可以让它选上
第一种：
((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);//选上
((CButton *)GetDlgItem(IDC_R]]></description><category></category></item><item><title><![CDATA[隐藏win32控制台程序的窗口]]></title><link>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8566180</link><guid>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8566180</guid><author>LANSHUIHAIYU</author><pubDate>Sat, 02 Feb 2013 23:08:49 +0800</pubDate><description><![CDATA[有时侯写一个控制台程序，不需要在前台出现类似DOS窗口的console窗口，这就要隐藏它；隐藏它很简单，只需在程序前面加上

#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
就可以了。
此种方法是通过设置编译器的链接开关来实现,所以让我们来看一下编译器的链接开关选项(也就是linke]]></description><category></category></item><item><title><![CDATA[WIN32串口API]]></title><link>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8563635</link><guid>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8563635</guid><author>LANSHUIHAIYU</author><pubDate>Fri, 01 Feb 2013 16:36:35 +0800</pubDate><description><![CDATA[在工业控制中，工控机（一般都基于Windows平台）经常需要与智能仪表通过串口进行通信。串口通信方便易行，应用广泛。 
一般情况下，工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的，只能由作为主节点的工控PC机依次轮询网络上的各智能控制单元子节点。每次通信都是由PC机通过串口向智能控制单元发布命令，智能控制单元在接收到正确的命令后作出应答。

在Win32下，可以]]></description><category></category></item><item><title><![CDATA[MFC CString.Format()详细用法]]></title><link>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8563093</link><guid>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8563093</guid><author>LANSHUIHAIYU</author><pubDate>Fri, 01 Feb 2013 14:50:31 +0800</pubDate><description><![CDATA[在MFC程序中，使用CString来处理字符串是一个很不错的选择。CString既可以处理Unicode标准的字符串，也可以处理ANSI标准的字符串。CString的Format方法给我们进行字符串的转换带来了很大的方便，比如常见的int、float和double这些数字类型转换为CString字符串只需一行代码就可以实现。
　　先看看Format用于转换的格式字符：
　　%c 单个字符]]></description><category></category></item><item><title><![CDATA[xp系统设置密码自动登陆]]></title><link>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8558564</link><guid>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8558564</guid><author>LANSHUIHAIYU</author><pubDate>Thu, 31 Jan 2013 10:15:57 +0800</pubDate><description><![CDATA[有两种方法可以要取消这个登录步骤：

        第一种就是修改注册表：

  第1步：开始-->运行-->regedit，依次展开[HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows NT\CurrentVersion\Winlogon ]分支，然后在右侧窗口双击"DefaultUserName"，接着输入你的登录用户名。如果没有"Defau]]></description><category></category></item><item><title><![CDATA[VS2010 关于char*转为LPWSTR]]></title><link>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8537192</link><guid>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8537192</guid><author>LANSHUIHAIYU</author><pubDate>Thu, 24 Jan 2013 11:21:45 +0800</pubDate><description><![CDATA[最近在使用VS2010 提示错误 : error C2664: 'LoadImageW' : cannot convert parameter 2 from 'char [20]' to 'LPCWSTR'“char [20]”转换为“LPCWSTR”


     问题的原因：VS2010默认采用宽字符UNICODE编码方式，定义了Unicode，因此相关的字符串必须为unicode字符串]]></description><category></category></item><item><title><![CDATA[sqlite API简介]]></title><link>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8252624</link><guid>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8252624</guid><author>LANSHUIHAIYU</author><pubDate>Mon, 03 Dec 2012 17:19:37 +0800</pubDate><description><![CDATA[.0 总览
SQLite3是SQLite一个全新的版本,它虽然是在SQLite 2.8.13的代码基础之上开发的,但是使用了和之前的版本不兼容的数据库格式和API. SQLite3是为了满足以下的需求而开发的:
支持UTF-16编码.
用户自定义的文本排序方法.
可以对BLOBs字段建立索引.
因此为了支持这些特性我改变了数据库的格式,建立了一个与之前版本不兼容的3.0版. 至于其他的兼]]></description><category></category></item><item><title><![CDATA[sqlite3中使用回调函数]]></title><link>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8252514</link><guid>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8252514</guid><author>LANSHUIHAIYU</author><pubDate>Mon, 03 Dec 2012 17:05:59 +0800</pubDate><description><![CDATA[回调函数的格式：
int sqlite_callback(
    void* pvoid,    
/* 由 sqlite3_exec() 的第四个参数传递而来 */
    int argc,        
/* 表的列数 */
    char** argv,    
/* 指向查询结果的指针数组, 可以由 sqlite3_column_text() 得到 
*/]]></description><category></category></item><item><title><![CDATA[windows 服务程序学习心得]]></title><link>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8212975</link><guid>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8212975</guid><author>LANSHUIHAIYU</author><pubDate>Fri, 30 Nov 2012 10:49:49 +0800</pubDate><description><![CDATA[1.服务首先是一个win32的可执行程序，它受到操作系统的优待，伴随着操作系统启动而启动，关闭而关闭。
         2.服务绝不需要用户界面。大多是的服务都是运行在服务器上。服务通常以控制台程序被编写，函数的入口是main(),不是winmain()。
          3想要写一个服务，就必须熟悉Win NT/2000的安全机制，在上述操作系统之中，所有安全都是基于用户的。如果一个进]]></description><category></category></item><item><title><![CDATA[MFC -添加tab ctrl 控件]]></title><link>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8239627</link><guid>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8239627</guid><author>LANSHUIHAIYU</author><pubDate>Thu, 29 Nov 2012 15:57:52 +0800</pubDate><description><![CDATA[1，创建一个主对话框，添加tab ctrl控件，拖放合适的大小，为控件添加变量m_TabCtrl。2，为工程添加对话框资源，设置属性为Boder：NONE，Style：Child；为子对话框添加类，并在主对话框中包含子对话框类的头文件，并创建一个子对话框的一个对象。3，在主对话框的BOOL OnInitDialog()函数中添加如下代码：	TCITEM item; 
	item.mask = T]]></description><category></category></item><item><title><![CDATA[window 下gsoap调用webservice——客户端编写]]></title><link>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8239614</link><guid>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8239614</guid><author>LANSHUIHAIYU</author><pubDate>Thu, 29 Nov 2012 15:43:04 +0800</pubDate><description><![CDATA[gSOAP编译工具提供了一个SOAP/XML 关于C/C++ 语言的实现，从而让C/C++语言开发web服务或客户端程序的工作变得轻松了很多。绝大多数的C++web服务工具包提供一组API函数类库来处理特定的SOAP数据结构，这样就使得用户必须改变程序结构来适应相关的类库。与之相反，gSOAP利用编译器技术提供了一组透明化的SOAP API，并将与开发无关的SOAP实现细节相关的内容对用户隐藏起来]]></description><category></category></item><item><title><![CDATA[VS2010下 C++与SQLite数据库的连接]]></title><link>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8208338</link><guid>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8208338</guid><author>LANSHUIHAIYU</author><pubDate>Wed, 21 Nov 2012 15:36:17 +0800</pubDate><description><![CDATA[SQLite并没有一次性做到位，只有下载这些东西是不能放在vs2010中并马上使用的，下载下来的文件中有sqlite3.c/h/dll/def，还是不够用的。我们需要的sqlite3.lib文件并不在其中，需要我们自己动手了。
这儿要用到visual studio提供的Visual Studio Command Prompt工具了。打开之后，进入含有sqlite3.dll和sqlite3.def]]></description><category></category></item><item><title><![CDATA[Windows的ANSI和UNICODE字符集]]></title><link>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8198554</link><guid>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/8198554</guid><author>LANSHUIHAIYU</author><pubDate>Mon, 19 Nov 2012 11:01:12 +0800</pubDate><description><![CDATA[Windows使用两种字符集ANSI和UNICODE，前者就是通常使用的单字节方式，但这种方式处理象中文这样的双字节字符不方便，容易出现半个汉字 的情况。而后者是双字节方式，方便处理双字节字符。Windows NT的所有与字符有关的函数都提供两种方式的版本，而Windows 9x只支持ANSI方式。_T一般同字常数相关，如_T("Hello")。如果你编译一个程序为ANSI方式，_T实际不起任何作]]></description><category></category></item><item><title><![CDATA[QT的静态编译]]></title><link>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/7814367</link><guid>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/7814367</guid><author>LANSHUIHAIYU</author><pubDate>Tue, 31 Jul 2012 15:01:09 +0800</pubDate><description><![CDATA[Qt默认的编译方式是动态编译的，但是有时候你编写的程序要发布出去，带很多动态库文件是很繁琐的，此时就需要静态编译你的程序，Qt要实现静态编译必须库文件也是静态编译的，可以用这个命令编译静态库：
配置编译选项
打开 
%QtDir%\mkspecs\win32-g++\qmake.conf （%QtDir%为Qt库所在目录）
在QMAKE_LFLAGS后面加上 
-static -enab]]></description><category></category></item><item><title><![CDATA[单链表中查找环的开始节点]]></title><link>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/7762011</link><guid>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/7762011</guid><author>LANSHUIHAIYU</author><pubDate>Thu, 19 Jul 2012 10:25:51 +0800</pubDate><description><![CDATA[已知壹个链表，尾节点错误的指向了本身，形成了带一段单链表的环链表；头结点已知，链表长度未知，求节点环的开始节点
/* (Step 1) Find the meeting point. This algorithm moves two pointers at  
* different speeds: one moves forward by 1 node, the other by 2. Th]]></description><category></category></item><item><title><![CDATA[给程序员的一些建议（李开复）]]></title><link>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/7752025</link><guid>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/7752025</guid><author>LANSHUIHAIYU</author><pubDate>Mon, 16 Jul 2012 16:14:36 +0800</pubDate><description><![CDATA[（1）练内功。不要只花功夫学习各种流行的编程语言和工具，以及某些公司招聘广告上要求的科目。要把数据结构、算法、数据库、操作系统原理、计算机体系结 构、计算机网络，离散数学等基础课程学好。大家不妨试试高德纳所著The Art of Computer Programming里的题目，如果你能够 解决其中的大部分题目，就说明你在算法方面有一定的功力了。


（2）多实战。通过编程的实战积累经验、巩]]></description><category></category></item><item><title><![CDATA[关于网络的知识]]></title><link>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/7603454</link><guid>https://blog.youkuaiyun.com/LANSHUIHAIYU/article/details/7603454</guid><author>LANSHUIHAIYU</author><pubDate>Fri, 25 May 2012 22:30:21 +0800</pubDate><description><![CDATA[从别处看到的一篇很不错的文章，形象地阐释了网络里的抽象概念。 
计算机主机网关的作用是什么？ 
假设你的名字叫小不点，你住在一个大院子里，你的邻居有很多小伙伴，在门口传达室还有个看大门的李大爷，李大爷就是你的网关。当你想跟院子里的某个小伙伴玩，只要你在院子里大喊一声他的名字，他听到了就会回应你，并且跑出来跟你玩。 
但是你不被允许走出大门，你想与外界发生的一切联系，都必须由门口的李大爷（网关]]></description><category></category></item></channel></rss>