- 博客(27)
- 资源 (2)
- 收藏
- 关注
原创 银河麒麟V4.0.2安防加固
例如: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设置密码复杂度,登录失败锁定用户。
2024-01-09 16:14:56
869
原创 利用ADO压缩Access数据库代码
#include "stdafx.h"#include #include "stdio.h"#include #include using namespace std;/* Filepath :数据库文件路径,不包括文件名例如:Filepath="..\\" SrcFileName :源文件名*/static bool compressMDB(const std::string
2013-03-27 09:39:29
2515
原创 类成员函数作为线程函数
一般情况下,类成员函数不可以作为线程函数,因类成员函数隐含了一个this指针。、如果一定要作为线程函数,可以有以下两种方案:1。定义为static类型的函数,去掉this 指针。虽然定义为static类型解决了作为线程的问题,但也带来了一个新的问题。静态成员函数只能访问静态成员。解决这个问题,在调用类的静态成员函数时,把this指针作为参数传入。并在线程函数中将this指针强制装换位指
2013-02-25 17:16:13
918
原创 Radio Button 控件使用
先为对话框加上2个radio button,分别是Radio1和Radio2。让Radio1和Radio2如何默认被选上?关键是选上,“默认”只要放在OnInitDialog()即可。三种方法可以让它选上第一种:((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);//选上((CButton *)GetDlgItem(IDC_R
2013-02-22 14:26:03
803
原创 隐藏win32控制台程序的窗口
有时侯写一个控制台程序,不需要在前台出现类似DOS窗口的console窗口,这就要隐藏它;隐藏它很简单,只需在程序前面加上#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )就可以了。此种方法是通过设置编译器的链接开关来实现,所以让我们来看一下编译器的链接开关选项(也就是linke
2013-02-02 23:08:49
4462
转载 WIN32串口API
在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。 一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的,只能由作为主节点的工控PC机依次轮询网络上的各智能控制单元子节点。每次通信都是由PC机通过串口向智能控制单元发布命令,智能控制单元在接收到正确的命令后作出应答。在Win32下,可以
2013-02-01 16:36:35
880
转载 MFC CString.Format()详细用法
在MFC程序中,使用CString来处理字符串是一个很不错的选择。CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串。CString的Format方法给我们进行字符串的转换带来了很大的方便,比如常见的int、float和double这些数字类型转换为CString字符串只需一行代码就可以实现。 先看看Format用于转换的格式字符: %c 单个字符
2013-02-01 14:50:31
646
原创 xp系统设置密码自动登陆
有两种方法可以要取消这个登录步骤: 第一种就是修改注册表: 第1步:开始-->运行-->regedit,依次展开[HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows NT\CurrentVersion\Winlogon ]分支,然后在右侧窗口双击"DefaultUserName",接着输入你的登录用户名。如果没有"Defau
2013-01-31 10:15:57
1849
原创 VS2010 关于char*转为LPWSTR
最近在使用VS2010 提示错误 : error C2664: 'LoadImageW' : cannot convert parameter 2 from 'char [20]' to 'LPCWSTR'“char [20]”转换为“LPCWSTR” 问题的原因:VS2010默认采用宽字符UNICODE编码方式,定义了Unicode,因此相关的字符串必须为unicode字符串
2013-01-24 11:21:45
27648
转载 sqlite API简介
.0 总览SQLite3是SQLite一个全新的版本,它虽然是在SQLite 2.8.13的代码基础之上开发的,但是使用了和之前的版本不兼容的数据库格式和API. SQLite3是为了满足以下的需求而开发的:支持UTF-16编码.用户自定义的文本排序方法.可以对BLOBs字段建立索引.因此为了支持这些特性我改变了数据库的格式,建立了一个与之前版本不兼容的3.0版. 至于其他的兼
2012-12-03 17:19:37
2049
原创 sqlite3中使用回调函数
回调函数的格式:int sqlite_callback( void* pvoid, /* 由 sqlite3_exec() 的第四个参数传递而来 */ int argc, /* 表的列数 */ char** argv, /* 指向查询结果的指针数组, 可以由 sqlite3_column_text() 得到 */
2012-12-03 17:05:59
2814
原创 windows 服务程序学习心得
1.服务首先是一个win32的可执行程序,它受到操作系统的优待,伴随着操作系统启动而启动,关闭而关闭。 2.服务绝不需要用户界面。大多是的服务都是运行在服务器上。服务通常以控制台程序被编写,函数的入口是main(),不是winmain()。 3想要写一个服务,就必须熟悉Win NT/2000的安全机制,在上述操作系统之中,所有安全都是基于用户的。如果一个进
2012-11-30 10:49:49
1086
原创 MFC -添加tab ctrl 控件
1,创建一个主对话框,添加tab ctrl控件,拖放合适的大小,为控件添加变量m_TabCtrl。2,为工程添加对话框资源,设置属性为Boder:NONE,Style:Child;为子对话框添加类,并在主对话框中包含子对话框类的头文件,并创建一个子对话框的一个对象。3,在主对话框的BOOL OnInitDialog()函数中添加如下代码: TCITEM item; item.mask = T
2012-11-29 15:57:52
2447
原创 window 下gsoap调用webservice——客户端编写
gSOAP编译工具提供了一个SOAP/XML 关于C/C++ 语言的实现,从而让C/C++语言开发web服务或客户端程序的工作变得轻松了很多。绝大多数的C++web服务工具包提供一组API函数类库来处理特定的SOAP数据结构,这样就使得用户必须改变程序结构来适应相关的类库。与之相反,gSOAP利用编译器技术提供了一组透明化的SOAP API,并将与开发无关的SOAP实现细节相关的内容对用户隐藏起来
2012-11-29 15:43:04
1808
转载 VS2010下 C++与SQLite数据库的连接
SQLite并没有一次性做到位,只有下载这些东西是不能放在vs2010中并马上使用的,下载下来的文件中有sqlite3.c/h/dll/def,还是不够用的。我们需要的sqlite3.lib文件并不在其中,需要我们自己动手了。这儿要用到visual studio提供的Visual Studio Command Prompt工具了。打开之后,进入含有sqlite3.dll和sqlite3.def
2012-11-21 15:36:17
6624
原创 Windows的ANSI和UNICODE字符集
Windows使用两种字符集ANSI和UNICODE,前者就是通常使用的单字节方式,但这种方式处理象中文这样的双字节字符不方便,容易出现半个汉字 的情况。而后者是双字节方式,方便处理双字节字符。Windows NT的所有与字符有关的函数都提供两种方式的版本,而Windows 9x只支持ANSI方式。_T一般同字常数相关,如_T("Hello")。如果你编译一个程序为ANSI方式,_T实际不起任何作
2012-11-19 11:01:12
1300
转载 QT的静态编译
Qt默认的编译方式是动态编译的,但是有时候你编写的程序要发布出去,带很多动态库文件是很繁琐的,此时就需要静态编译你的程序,Qt要实现静态编译必须库文件也是静态编译的,可以用这个命令编译静态库:配置编译选项打开 %QtDir%\mkspecs\win32-g++\qmake.conf (%QtDir%为Qt库所在目录)在QMAKE_LFLAGS后面加上 -static -enab
2012-07-31 15:01:09
909
原创 单链表中查找环的开始节点
已知壹个链表,尾节点错误的指向了本身,形成了带一段单链表的环链表;头结点已知,链表长度未知,求节点环的开始节点/* (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
2012-07-19 10:25:51
3081
转载 给程序员的一些建议(李开复)
(1)练内功。不要只花功夫学习各种流行的编程语言和工具,以及某些公司招聘广告上要求的科目。要把数据结构、算法、数据库、操作系统原理、计算机体系结 构、计算机网络,离散数学等基础课程学好。大家不妨试试高德纳所著The Art of Computer Programming里的题目,如果你能够 解决其中的大部分题目,就说明你在算法方面有一定的功力了。(2)多实战。通过编程的实战积累经验、巩
2012-07-16 16:14:36
11129
转载 关于网络的知识
从别处看到的一篇很不错的文章,形象地阐释了网络里的抽象概念。 计算机主机网关的作用是什么? 假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大爷就是你的网关。当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一声他的名字,他听到了就会回应你,并且跑出来跟你玩。 但是你不被允许走出大门,你想与外界发生的一切联系,都必须由门口的李大爷(网关
2012-05-25 22:30:21
1551
转载 关于内存对齐
首先由一个程序引入话题: 1 //环境:vc6 + windows sp2 2 //程序1 3 #include 4 5 using namespace std; 6 7 struct st1 8 { 9 char a ;10 int b ;11 short c ;12 };13 14 struct st
2012-04-19 20:48:21
570
原创 指针函数,函数指针
指针函数,顾名思义,首先它是个函数,返回值是一个指针。申明:类型 *函数名(参数列表)。例如:int *fun(int a,int b ){……}由于()的优先级高于*,所以int *(fun(int ,int )),首先他是一个函数,返回值类型是int *型的指针;而 函数指针,顾名思义,首先它是是个指针。申明:类型 (* 指针变量
2012-04-16 21:47:27
565
原创 linux 的生成动态库,静态库
linux 中创建动态库,静态库静态库动态库都是由目标文件创建的。生成动态库:gcc -shared -fPCI -o libmysoup.so soup.o()引用动态库:cp libmysoup.so /usr/lib 将动态库添加到系统中 /usr/bingcc main.c -L./ -lmysoup -main (-L后面跟libmysou
2012-04-16 17:24:08
450
原创 单向链表
#include"list.h"#include#includetypedef struct node{int data;struct node *next;}link create_Link()//创建链表{link head,cur;int input;head=(link)malloc(sizeof(node));//申请头结点if(hea
2012-04-15 15:02:45
371
原创 关于循环双向链表
typedef struct node{int data;struct node *pre;struct node *next;}node,*link;link createlink()//创建链表{int input;link head,list,cur ;head=(link)malloc(sizeof(node));//申请头结点空
2012-04-15 13:20:53
483
原创 关于数组,部分引用《C语言深度剖析》
首先我们定义一个数组:int[5]={1,2,3,4,5};对于这样的数组的初始化,我们只在定义的时候初始化,而不能以a[5]={1,2,3,4,5};初始化形式的初始化;当我们定义一个数组时,编译器根据我们制定的类型和大小,为数组开辟一块空间,数组名为a。sizeof(a)=20,sizeof(a[0])=4,那么sizeof(a[5])编译器会不会报错呢?首先sizeof()是关键字,
2012-04-12 18:16:33
696
原创 关于位段的解释及用法
首先看看位段的作用:位段是在字段的声明后面加一个冒号以及一个表示字段位长的整数来实现的。这种用法又被就叫作“深入逻辑元件的编程”。几个关于位段的注意点:1、位段的成员类型只有三种类型:int ,unsigned int ,signed int。位段,它是用来表示字段位长(bit)的,它只有整型值。至于能不能取负数,是由编译器决定的。2、成员名后面的一个冒号和一个整数,这个整数指定该位段的位长(
2012-04-11 16:12:10
1361
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人