- 博客(60)
- 资源 (35)
- 收藏
- 关注
转载 openssl des 加密解密补齐问题
项目中有用到使用opensll des 对文件进行加密解密,发现加密解密后的文件长度不同,仔细看下算法发现,des加密需要补齐数据步骤。des加密逻辑:DES算法函数接口 在OpenSSL中,DES算法的基本函数就是ECB操作模式对应的函数DES_ecb_encrypt()。该函数把一个8字节明文分组input加密成为一个8字节密文分组output。参数中密钥结构ks是用函数DES_
2013-09-30 09:58:43
1199
原创 vc 关闭对话框几种方法
参考网上资料,对话框关闭流程如下:从用户单击关闭按钮(标题栏最右边)或者用鼠标或键盘选择系统菜单的“关闭”选项,直到窗口消失,应用程序结束。这期间到底发生了什么呢? 1、首先会产生一个WM_SYSCOMMAND消息,如果程序员没有对此消息进行拦截,则由缺省的窗口函数DefWindowProc进行处理,如果表达式(LOWORD(wParam)&0xFFF0)==SC_CLOSE 成立,
2010-05-21 16:26:00
2694
原创 对话框操作大全
参考http://blog.youkuaiyun.com/bl7009/archive/2007/07/01/1674754.aspx注:以下代码以一个名为CTest6Dlg的对话框类为例--------------------------------------------------------------------------------1. 在任务栏隐藏对话框 ModifyS
2010-05-21 16:23:00
789
原创 vc 关闭对话框几种方法
参考http://blog.youkuaiyun.com/bl7009/archive/2007/07/01/1674754.aspx注:以下代码以一个名为CTest6Dlg的对话框类为例--------------------------------------------------------------------------------1. 在任务栏隐藏对话框 ModifyS
2010-05-21 16:17:00
1965
1
原创 linux 下获取本地IP地址
#include #include #include #include #include #include #include #include #include #include #include #include #include #include int main(int argc,
2008-06-16 14:32:00
3245
2
原创 Linux-Vim错误Can’t write viminfo file
今天在Linux下编程使用vim编程时最后保存时出现了Can’t write viminfo file这个错误,但按回车后仍然可以正常执行命令,虽然正常但十分不爽,上网查了点资料发现可能有两个原因导致这个问题 当前用户没有对.viminfo文件有写入的权限(这个概率很小),可以使用ls -l .viminfo查看文件权限,再用chomd a+w .viminfo增加写的权限。rm -f .vimi
2008-05-23 17:24:00
2172
原创 Linux命令学习之一
1. CD: 可以进入和改变用户当前目录,其操作命令主要有, cd usr:表示进入当前目录下的usr目录,如果没有这个目录的话会报告出错, 也可以直接写全它的目录全名如 cd /home/someone/test. 退出有好几种退出法,如退出到前一目录:cd ..或者cd/home/someone就可以退到当前目录的父目录,还有一种是直接退出到当前用户的根目录就是直接输入c
2008-04-09 09:10:00
235
转载 Linux系统新手学习的11点建议
随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起。这里介绍学习Linux的一些建议。 一、从基础开始:常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的。例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不是很难的,只要了解了 Linux 的基础之后
2008-04-07 15:24:00
221
转载 inux必学的60个命令
inux必学的60个命令Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重
2008-04-07 15:22:00
552
转载 linux下c编程起步:掌握gcc基本用法
初学时最好从命令行入手,这样可以熟悉从编写程序、编译、调试和执行的整个过程。编写程序可以用vi/vim(个人觉得vim比vi好用)或其它编辑器编写。 编译则使用gcc命令。要往下学习首先就得熟悉gcc命令的用法。 gcc命令提供了非常多的命令选项,但并不是所有都要熟悉,初学时掌握几个常用的就可以了,到后面再慢慢学习其它选项,免得因选项太多而打击了学习的信心。一. 常用编译命令选
2008-04-07 15:19:00
347
原创 ACE学习之定时器(Timer)
定时器(Timer)在事件超时的时候适当的调用事件处理器的handle_timeout()方法.为调度这样的定时器,反应器拥有一个schedule_timer()的方法.该方法接受事件处理器,以及以ACE_Time_Value对象形式出现的延迟对味参数.此外,可以指定时间间隔,使定时器在它超时后自动恢复 .反应器在内部维护ACE_Timer_Queue,它以定时器要被调度的顺序对它
2008-04-03 16:44:00
5526
原创 ACE学习之单体模式(Singleton)
ACE_Singleton : 单体模式ACE_Singleton会随即想ACE_Object_Manager登记该单体实例,ACE_Object_Manager承担了在程序终止时销毁单体实例的任务,ACE_Unmanaged_Singleton并不向ACE_Object_Manager登记实例,销毁单体需要显示的调用ACE_Unmanaged_Singleton::close(),一般在DLL种
2008-03-27 14:14:00
855
原创 ACE入门学习之创建简单的服务器端和客户端
ACE自适配通行环境(Adaptive Communicatin Environment)是面向对象的框架和工具包。它为通信软件实现了核心的并发和分布式模式。ACE具有分层的体系结构,基本分为三层:1. 操作系统适配层(OS)2. C++包装层3. 框架和模式层Shock类属(ACE_SOCK):1. Dgram类和S
2008-03-17 16:12:00
1895
原创 窗口创建和销毁的过程
创建窗口的循序:1. PreCreateWindow() 窗口被创建前,允许该变窗口参数2. PreSubclassWindow() 允许首先子分类一个窗口3. OnGetMinMaxInfo()
2007-12-25 12:34:00
392
原创 MFC处理消息的顺序
MFC处理消息的顺序在vc编程中,消息的路由和传递路径一直是一个大的问题,主要是由于windows本身的消息种类有很多,像系统消息,命令消息和自定义消息,而MFC中又玩起狸猫换太子的游戏,偷换窗口处理函数,在这里想归纳一下简单的消息传递路径: AfxWndProc()
2007-12-25 12:21:00
359
原创 SetWindowPos的作用
SetWindowPos的作用: 在MSDN里面是这样表述的:The SetWindowPos function changes the size, position, and Z order of a child, pop-up, or top-level window. Child, pop-up, and top-level windows are ordered a
2007-08-30 09:41:00
949
转载 基于Visual C++6.0的声音文件操作
声音是人类传递信息的重要途径,如果应用程序中包含声音信息,就可以大大增强它的亲合力;另外在科研开发过程中,声音信号的处理也是一个很重要的科学研究领域。Visual C++作为一个强大的开发工具,当然是声音处理的首选工具,但是在当前Visual C++相关的编程资料中,无论是大部头的参考书,还是一些计算机杂志,对声音文件的处理都是泛泛的涉及一下,许多编程爱好者都感到对该部分的内容了解不是很透彻
2007-08-16 13:40:00
1328
1
转载 VC调用ACM音频编程接口压缩Wave音频
摘要: 本文介绍了在Microsoft Visual C++ 6.0下如何调用ACM(Audio Compression Manager,音频 压缩管理器)音频压缩编程接口对原始录入的Wave音频进行数据压缩。 关键字:ACM、CODECs、Wave音频、音频编码压缩 引言 音频和视频是多媒体应用程序向用户提供信息的主要方式,这些音频、视频数据一般都具有较高的采样率,经过压缩的原始数据
2007-08-16 13:37:00
704
原创 利用Visual C++实现系统托盘程序
利用Visual C++实现系统托盘程序自从微软公司推出Windows 95操作系统以来,系统托盘应用作为一种极具吸引力的用户界面设计深受广大用户的喜爱。使用系统托盘作为用户界面的Windows应用程序数不胜数,比如"金山词霸"、"Winamp"、"RealPlayer"等等。这些程序运行时不显示运行窗口,只在任务栏上显示一个图标,表示程序正在运行,用户可以通过鼠标与应用程序交互,程
2007-07-26 17:35:00
1446
1
转载 VC中用简易方法实现淡入淡出的启动画面
VC中用简易方法实现淡入淡出的启动画面2006-07-06 10:39:19 来源: VCKBASE 网友评论 0 条 进入论坛 一日心血来潮,想给启动画面来个淡入淡出,于是去谷歌(google)查了半天,无果。但知道了AnimiateWindow 这个函数。好吧,让我们开始吧。首先,请在需要淡入淡出窗口的cpp文件或者stdafx.h加入下列代码(注意要加在#include
2007-07-26 17:30:00
484
原创 对话框背景色的设置
黄基前(广西桂林)---- 笔者曾在《软件报》2000年第5期中讨论过如何改变控件的颜色,但还有相当一部分的读者来信提问: 一个基于对话框的MFC AppWizard应用程序中,如何改变对话框的背景颜色呢?对于这个问题,其实可以 由几种不同的方法来实现,具体如下(粗斜体代码为增添的):---- 方法一:调用CWinApp类的成员函数SetDialogBkColor来实现。---- 其中函数的第一个
2007-07-25 22:15:00
364
原创 使用CPropertySheet类
使用CPropertySheet类,在无模式状态下会有三个按钮(确认/取消/应用) 我想改变三个按钮的标题,另还想增加按钮, 不知如何实现? 谢谢 --------------------------------------------------------------- 为了最大限度的发挥属性页的效用,首先让我们先从 CPropertySheet 继承一个新类,取名为
2007-07-25 16:43:00
1918
转载 数据库中存取图片
str.Format("SELECT sn,pic,patient_id FROM T_Pacs_Pic WHERE patient_id=/%s/",magiccard); m_pRecordset->Open((_bstr_t)str,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,a
2007-07-25 16:42:00
1499
原创 用Visual C++实现QQ界面的模拟
大凡用过电脑,上过网的朋友都用过QQ,对QQ的一些交互界面可能垂慕已久,的确,无论是其生动的企鹅形象,还是“滴滴的”消息声音,以及“刷”的菜单等功能,简单单的消息发送,以及快速的回显和众多卡通的QQ头像等铸就了其在网络的良好地位,本人对其研究虽不够透彻,但也做一些探索性的尝试,并简单的实现了比较突出的功能,在模拟的过程中,主要实现了以下几部分的功能: QQ菜单,也称抽屉菜单(也有的叫导航菜单)
2007-07-25 16:41:00
967
原创 Tab Control的运行
Tab Control的运行效果有点像Property Sheet,但两者还是有一些区别。我的理解就是Property Sheet主要用在 对话框中,对数据进行进行分类管理。而Tab Control使用范围更广一些,既可以用在对话框,也可以用在视图中,除了可以管理配置数据外,还可以对 软件的组织进行规划,比如可以通过它来切换不同的视图等等。当然这不是没有代价的,Tab Control的编
2007-07-25 16:40:00
775
原创 Dll的制做和连接
Dll的制做: Non-MFC的DLL: 在头文件里定义函数名: Extern “C” _declspec(dllexport)int max(int a, int b); 然后在实现文件里写函数的实现: #include “head.h”
2007-07-20 11:08:00
416
原创 Effective C++ 读书笔记(五)
Effective C++ 读书笔记(五)C++创建类时,会自动在空的类中添加四个默认的函数:如Empty()类 Empty() Empty(cosnt Empty& rhs) ~Empty() Empty& operator=(const Empty& rhs)当用户自己声明一个构造函数后,编译器便不再
2007-07-17 11:14:00
318
原创 Effective C++ 读书笔记(四)
Effective C++ 读书笔记(四) 为内置型对象进行手工初始化,因为C++不保证初始化它们. 构造函数最好使用成员初值列,而不要在构造函数本体内使用赋值操作.初值列列出的成员变量,其排列次序应该和它们在声明中次序相同 为了免除”跨编译单元之初始化次序”问题,请以local static对象替换non-local static对象
2007-07-12 17:25:00
343
原创 Effective C++ 读书笔记(三)
Effective C++ 读书笔记(三)记住一句很重要的话:如果关键字const出现在星号左边,表示被指物是常量;如果出现在星号右边,表示指针自身是常量;如果两边都出现,表示被指物和指针两者都是常量.Mutable:C++中的一个于const相关的摆动场,可变的,它可以释放掉non-static成员变量的btiwise constness约束.
2007-07-11 17:32:00
311
原创 Effective C++读书笔记(二)
Effective C++读书笔记(二)l 对于单纯常量,最好以const对象或者enums替换#definel 对于形似函数的宏(macros),最好改用inline函数替换#definel 在类中要申明一个全局的变量,可以在类申明过程中用:static const in num = 5;记住要初始化,l 在定
2007-07-10 16:20:00
284
原创 Effective C++读书笔记(一)
Effective C++读书笔记(一)C++语言并不是带有一组守则的一体语言:它是从四个次语言组成的一个联邦政府Ø C:C++仍是以C为基础Ø Object-Oriented C++Ø Template C++:泛型编程(generic programming)Ø STL:是template程序库四个次
2007-07-09 13:10:00
358
原创 用VC获取系统时间
用VC获取系统时间: 有两种方法,但显示的却不大一样:1. 用CTime类获得:CTime time = CTime::GetCurrentTime(); time.Format("%I:%M:%S %p, %A, %B %d, %Y")2. 用SYSTEMTIME获得SYSTEMTIME time; GetSystemTime(&time)
2007-07-06 13:28:00
1812
原创 VC自定义函数
VC当中允许用户自定义函数,通过消息来触发某个特定的函数,并且使用参数可以指定不同的事件相应,具体的步骤如下:1) 先在头文件中自定义一个消息如: #define USER_MESSAGE WM_USER+100, WM_USER是系统提供给用户设置的消息区域,用户可以在后面添加不同的自定义消息.2) 在头文件里的申明一个自定义函数如:
2007-07-06 13:17:00
1437
原创 弹出式菜单(PopMenu)
弹出式菜单(PopMenu)大家都熟悉,在WIN98的桌面上单击鼠标右键弹出的菜单就是弹出式菜单。通常情况下,弹出式菜单在鼠标右键单击时弹出,当然,也可以根据需要随时弹出。 在VC++5的MFC中,管理菜单的类叫CMenu。下面我向大家介绍建立一个弹出式菜单的基本方法。 一、在资源编辑器中建立一个菜单资源 新建一个菜单资源,比如把菜单的ID号为IDC_POPMENU。此菜单有一项两层
2007-05-17 11:13:00
2027
原创 debug与release安装包在程序安装后有什么不同
Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。至于是否需要DLL支持,主要看你采用的编译选项。如果是基于ATL的,则Debug和Release版本对DLL的要求差不多。如果采用的编译选项为使用MFC动态库,则需要MFC42D.DLL等库支持,而Release版本需要MFC42.DLL支持。Release Build不对源代码进行调试,不考虑MFC的诊断宏
2007-04-27 10:14:00
585
原创 WSAStartup()
简述: #include int PASCAL FAR WSAStartup ( WORD wVersionRequested, LPWSADATA lpWSAData ); wVersionRequested Windows Sockets API提供的调用方可使用的最高版本号
2007-04-09 16:04:00
756
原创 程序员每天该做的事
程序员每天该做的事 1、总结自己一天任务的完成情况 最好的方式是写工作日志,把自己今天完成了什么事情,遇见了什么问题都记录下来,日后翻看好处多多 2、考虑自己明天应该做的主要工作 把明天要做的事情列出来,并按照优先级排列,第二天应该把自己效率最高的时间分配给最重要的工作 3、考虑自己一天工作中失误的地方,并想出避免下一次再犯的方法 出错不要紧,最重要的是不要重复犯相同的错误,那是愚蠢
2007-04-09 12:52:00
631
1
原创 什么时候用assert
断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为 true。如果表达式计算为 false,那么系统会报告一个 Assertionerror。它用于调试目的: assert(a > 0); // throws an Assertionerror if a 断言可以有两种形式: assert Expression1 ; assert Expression1 : Expression2 ;
2007-04-09 12:51:00
802
原创 连接DLL
先把创建好的DLL文件放到工程目录下,然后在相应的程序中导入。代码如下: typedef int (_cdecl *Connect)(int *i); HINSTANCE hinst = NULL; hinst = LoadLibrary(_T("MYDLL.dll")); Connect Proc; Proc = (Connect)GetProcAddress(hinst,"Add"); P
2007-04-09 09:30:00
509
原创 VC 背景填充位图的几种方法
方法一OnEraseBkgnd(CDC* pDC) { // 设置画刷为希望的背景 CDC backBmp; backBmp.CreateCompatibleDC(pDC); CBitmap bitmap; bitmap.LoadBitmap(IDB_BG); CBrush m_brushBackground; m_brushBackground.CreatePatt
2007-04-09 08:57:00
575
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人