- 博客(24)
- 资源 (5)
- 收藏
- 关注
转载 dll与lib之间的区别
共有两种库:一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library。一种是LIB包含函数代码本身,在编译时直接将代码加入程序当中,称为静态链接库static link library。共有两种链接方式:动态链接使用动态链接库,允许可执行模块(.dll文件或.exe文件)仅
2012-04-29 14:50:38
772
原创 VC++MySQL数据库编程
一、MySQL数据库的安装 下载MySQL Server 5.1这个版本,当然版本越新越好。如果对MySQL数据库不是很熟悉的同学可以在网上下载Navicat for MySQL这个软件,这个软件有可视化的界面可以对MySQL数据库进行操作,其界面与微软的SQL Server的界面差不多。二、VC8.0的设置 因为本人对MySQL数据库的编程用的是Visual Studio 2005这个版本,所以下面的设置可能与VC6.0又一点点的区别。设置步骤如下: (1) 打开项目->属性->配置
2011-05-18 11:12:00
6744
3
原创 MFC中的消息映射
MFC消息映射 消息的传递与发送是Windows程序的核心所在,任何事件的触发与响应均要通过消息的作用才能得以完成。在SDK编程中,对消息的获取与分发主要是通过消息循环来完成的,而在MFC编程中则是通过采取消息映射的方式对其进行处理的。相比而言,这样的处理方式要简单许多,这也是符合面向对象编程中尽可能隐含实现细节的原则。 一个完整的MFC消息映射包括对消息处理函数的原型声明、实现以及存在于消息映射中的消息入口。这几部分分别存在与类的头文件和实现文件中。一般情况下除了对自定义消息的响应外,对于标准Wind
2011-04-28 16:01:00
2789
原创 C++全排列递归实现
<br /> 设计一个程序生成n个元素{r1,r2,…,rn}的全排列。如n=3时,输出为:r1r2r3,r3r2r1,r1r3r2,r2r1r3,r2r3r1,r3r1r2。<br /> <br />思路如下:<br />全排列是将一组数按一定顺序进行排列,如果这组数有n个,那么全排列数为n!个。现以{1, 2, 3, 4, 5}为例说明如何编写全排列的递归算法。<br />1、首先看最后两个数4, 5。 它们的全排列为4 5和5 4, 即以4开头的5的全排列和以5开头的4的全排列。由于一个数的全排列就是
2010-10-28 10:56:00
30295
8
转载 8皇后问题-回溯方法
八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上. 问题分析: 第一步 定义问题的解空间 这个问题解空间就是8个皇后在棋盘中的位置. 第二步 定义解空间的结构 可以使用8*8的数组,但由于任意两个皇后都不能在同行,我们可以用数组下标表示 行,数组的值来表示皇后放的列,故可以简化为一个以维数组x[9]。 第三步 以深度优先的方式搜索解空间,并在搜索过程
2010-10-23 12:09:00
1324
原创 二叉树的遍历(先序、中序、后序)
<br />先创建一个函数CreateTree 来先序输入一个二叉树,然后通过PreOrderTree函数先序显示二叉树。至于中序和后序显示二叉树,只需将PreOrderTree中的对应的如下三行进行互换就行了。<br /> <br />1 printf("%c",T->data); <br />2 PreOrderTree(T->lchild); <br />3 PreOrderTree(T->rclild);<br /> <br />具体的实现代码如下所示:<br />#include <stdi
2010-10-15 20:37:00
960
原创 将两个递增的有序链表合并,不分配额外的空间
具体的实现过程如下:typedef struct List{ int num; struct List * next;}Node;Node * CombinationNode(Node* head1, Node* head2){ if(!head1) { return head2; } if(!head2) { return head1; } Node* p1 = head1->next; Node* p2 = head2->next;
2010-10-14 20:05:00
1618
1
转载 单链表判环判交问题
【摘要】有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。1、如何判断一个链表是不是这类链表?2、如果链表为存在环,如果找到环的入口点?扩展:判断两个单链表是否相交,如果相交,给出相交的第一个点。<br />有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。<br />问题:<br />1、如何判断一个链表是不是这类链表?<br />2、如果链表为存在环,如果找到环的入口点?<br /
2010-10-12 15:03:00
2162
原创 二分查找
<br />二分查找又称折半查找,它是一种效率较高的查找方法。<br />【二分查找要求】:<br /> 1.必须采用顺序存储结构 2.必须按关键字大小有序排列。<br />【优缺点】<br /> 折半查找法的优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。 <br /> <br />具体的C++实现代码如下所示:<br />#include <iostream>using namespace st
2010-10-11 20:02:00
1539
原创 快速排序
<br />快速排序时目前被认为是最好的一种内部排序方法。同时,快速排序被认为是,在所有同数量级(O(nlogn))的排序方法中,其平均性能最好。<br />其具体的C实现代码如下所示:<br />#include <stdio.h>int Partition(int *a,int low,int high){ int basekey = a[low]; while(low < high) { while(low < high && a[high] >= basekey)
2010-10-11 16:51:00
1447
原创 单向链表的增、删、逆序实现
链表这个数据结构的作用举足轻重,本文主要实现的是单向链表的一些基本的操作。 具体的实现如下所示,有错误可以大胆地指出 ^_^ #include #include typedef struct student{ int data; struct student *next;}node;node* singlelist_create();node* singlelist_reverse(node* head);void singlelist_pr
2010-10-07 20:08:00
947
原创 连续字符串的截取
一个面试题: 给一个字符串、例如 “ababc”要求返回“ab”. 因为“ab”连续重复出现且最长。用C/C++语言写一函数完成该算法,给出复杂度<br /> 这么题目在网上有很多的解答的方法,本人参考了网上的程序并自己写了一个程序,仅供参考,如果程序有漏洞的话,希望各位给予指出。<br /> <br />具体的实现思路如下:<br /> <br /> 先从最左的开始,一个一个字符地扫描,设扫到的index为index. 在扫描到的字符及其右边的所有字符里查找最长的连续出现的字符串. <br
2010-09-28 17:19:00
2001
转载 堆和栈的区别
<br /> 一、预备知识—程序的内存分配 <br /> 一个由c/c++编译的程序占用的内存分为以下几个部分 <br /> 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 <br /> 操作方式类似于数据结构中的栈。 <br /> 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由os回 <br /> 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 <br
2010-09-24 15:25:00
413
转载 MFC(CFile)文件操作
本文将对Visual C++中有关文件操作进行全面的介绍,并对在文件操作中经常遇到的一些疑难问题进行详细的分析。 1.文件的查找 当对一个文件操作时,如果不知道该文件是否存在,就要首先进行查找。MFC中有一个专门用来进行文件查找的类CFileFind,使用它可以方便快捷地进行文件的查找。下面这段代码演示了这个类的最基本使用方法。 CString strFileTitle; CFileFind finder; BOOL bWorking = finder.FindFile("C://window
2010-08-31 10:35:00
719
原创 MFC中视图类、框架类、文档类之间句柄指针的转换(待完善)
在VC6.0中新建一个Graphic的工程,则视图类、框架类、文档类之间句柄指针的转换的形式可以如下所示:1 在文档类中获取视图类的指针 POSITION pos=GetFirstViewPosition(); CGraphicView *pView=(CGraphicView*)GetNextView(pos);2 在视图类中获取文档类的指针 CGraphicDoc *pDoc=GetDocument();3 框架类中获取视图类的指针 CGraphicView *pView=(CGraphi
2010-08-21 18:56:00
760
原创 CString , char * ,string 之间的转换
CString ,string , char * 之间的转换在开发的过程中会经常的用到,今天做一个小总结,在以后的开发的过程中不断的完善。1 CString char* 之间的转换 CString 转 char*char*转 CString 2 string char* 之间的转换char* 转stringstring 转char* char *p = string.c_str(); 3 string CString 之间的转换 string 转 CString CString.format(
2010-08-21 11:09:00
600
原创 DropDownList 绑定及初始值问题
很多人可能在DropDownList绑定数据源的时候存在一些问题。而本人以前在项目中碰到的问题就是GridView与DetailsView的二级联动的时候,编辑状态下,DropDownList默认选定的值显示错误。 下面是一种解决的办法: 在前台,DetailsView的一项模板项里面添加如下 News
2010-05-25 10:25:00
4300
转载 matlab 优化应用
§1 线性规划模型一、线性规划课题: 实例1:生产计划问题 假设某厂计划生产甲、乙两种产品,现库存主要材料有A类3600公斤,B类2000公斤,C类3000公斤。每件甲产品需用材料A类9公斤,B类4公斤,C类3公斤。每件乙产品,需用材料A类4公斤,B类5公斤,C类10公斤。甲单位产品的利润70元,乙单位产品的利润120元。问如何安排生产,才能使该厂所获的利润最大。建立数学模型:
2010-05-08 17:17:00
3075
原创 DirectShow 音频采集
经过2个多星期的学习,对DirectShow有了一定的了解,自己仿照SDk中的样例简要的写了一个音频采集的例子,希望给那些新手一点点帮助。 大家知道用来采集音频的设备很多,我们可以在GraphEdit里面插入一个Audio Source Capture 作为Source Filter,如图1所示。这个时候就存在InputPin(输入Pin)可以供我们选择,一般在实际中会选择的是
2010-05-06 10:24:00
5481
原创 DirectShow 与Windows Media Format开发环境配置
DirectX9.0 SDK 开发包版本较多,DirectX9.0b 版本之前的SDK 包基本是完整的, DirectX9.0c 版本的SDK 包大多是升级包,里面并未附带DirectShow 部分,故不能 单独使用。 针对DirectX9.0b SDK,本文主要在VC6.0的开发环境下配置DirectX的开发环境,至于DirectX9.0c SDK,现在的很多版本是VS2003的版本。
2010-05-05 21:44:00
1149
原创 VC常用知识点集锦(更新中...)
下面是本人在实际的应用中经常用到的一些VC方面的知识,整理起来仅供查阅: 1 UpdateData(BOOL bSaveAndValidate = TRUE)函数。UpdateData(TRUE)表示刷新控件的值到相关联的变量,UpdateData (FALSE)则表示将相关联变量的值拷贝给控件。 2 经常会用下面两个函数存储.INI文件和读取.INI文件,通
2010-04-06 19:33:00
530
原创 麻将胡牌函数
网上开源的麻将的代码比较少,本文主要介绍一个麻将的胡牌的算法。这个麻将系统中1个麻将用一个已经封装好了的类Card来表示,Card有两个属性:Type和Num。Type表示麻将的种类(条、万、筒),Num表示某一类麻将牌面的大小。Win函数(胡牌函数)主要包含七对 和 "3,3,3,3,2"这两种普通的种类,其中 "3,3,3,3,2"主要是通过递归算法来实现。 bool Win (C
2010-04-05 16:12:00
4631
1
原创 VC 运用MSComm控件串口通信
在VC++的平台下,串口通信一般存在两种形式:1.直接通过API函数设计通信的参数等,这种方式的好处在于与实际的结合比较的灵活,缺点是编码的工作量比较大,要了解通信的各个环节的话就必须弄懂每个API函数的具体意思。2.使用VC++提供的串行通信控件MSComm,这种方法编码简单易懂,但是不够灵活。 本文就主要介绍第二种方法。 首先,选择菜单-->添加到
2010-04-04 12:34:00
2306
原创 双缓存解决屏幕闪烁问题
1.首先添加WM_ERASEBKGND消息 打开ClassWizard对话框,选择Class Info,找到左下角的Message filter,选中Window,保存。 打开ClassWizard对话框,Class Name:选择当前工程对话框:选择当前对话框->Messages:下拉找到WM_ERASEBKGND,双击添 加。 添加成功以后,找到函数OnEras
2010-04-02 21:01:00
971
C C++程序设计笔试试题
2010-09-25
DirectShow音频采集
2010-05-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人