自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

I Belivs I Can!

一直在努力,从不言放弃!

  • 博客(129)
  • 资源 (25)
  • 收藏
  • 关注

原创 ConcurrentHashMap源码分析

基本原理Java7 基本数据模型:数组+Segment<K,V>[] segments+HashEntry<K,V>[] table+链表组成,锁通过Cas+Lock锁实现。基本原理简介:ConcurrentHashMap由一个个 Segment 组成,Segment 代表部分或分段的意思,所以很多地方都会将其描述为分段锁。通俗易懂的说,ConcurrentHashMap 是一个Segment数组,Segment通过继承 ReentrantLo...

2020-11-25 18:13:33 223 2

原创 手写简单LinkList集合

package com.zl.ext.collection;/** * @packagb:com.zl.ext.collection * @Author: fab * @Description:基于双向链表实现 * @Date: * @Modified By: */public class MylinkList<E> { int size = 0; /** * 记录当前链表的头节点 */ public Node<E.

2020-11-23 19:58:18 196

原创 手写简单Arraylist集合

package com.zl.ext.collection;import java.util.Arrays;/** * @packagb:com.zl.ext.collection * @Author: fab * @Description:数组实现Arralist,主要是扩容(添加元素)和缩容问题(删除元素) * @Date: * @Modified By: */public class MyExtArrayList<T> { /** * 初始化数.

2020-11-23 19:56:24 188

原创 JDK1.8HashMap源码分析

HashMap源码分析基本实现原理首先有一个每个元素都是链表的数组,当添加一个元素(key-value)时,就首先计算元素key的hash值,以此确定插入数组中的位置,但是可能存在同一hash值的元素已经被放在数组同一位置了,这时就添加到同一hash值的元素的后面,他们在数组的同一位置,但是形成了链表,同一各链表上的Hash值是相同的,所以说数组存放的是链表。而当链表长度太长时,链表就转换为红黑树,这样大大提高了查找的效率。当链表数组的容量超过初始容量的0.75时,再散列将链表数组扩大2倍,把原链表

2020-11-17 19:30:52 209

原创 基于注解@Async的SpringBoot异步调用

应用场景:异步调用通常用在发短信、发送邮件、消息推送 、运维凌晨自动化操作等,这些场景实时性要求不高,大多都是推广统计等服务。概述SpringBoot 中通过线程池来异步执行任务的两种方法:通过 Spring 自带的 @EnableAsync 和 @Async 两个注解实现异步执行任务功能通过自定义的方式在通过 @EnableAsync 和 @Async 两个注解...

2020-01-22 14:09:44 233

原创 SpringBoot+Websocket+stomp

第一步:引入pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLoc...

2019-11-24 10:04:26 451

原创 SpringBoot+ELK+Kafaka

ELK由Elasticsearch、Logstash和Kibana三部分组件组成。Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用。kibana 是一个开源和免费的工具,它可以为 ...

2019-09-12 23:04:49 2066

原创 CenOS7下ELK日志分析搭建

ELK由Elasticsearch、Logstash和Kibana三部分组件组成;Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用kibana 是一个开源和免费的工具,它可以为 L...

2019-09-12 22:41:22 438

原创 CenOS7下Elasticsearch安装和自动重启配置

ElasticsearchElasticsearch安装1.下载ElasticSearch[root@localhost 20190903]# wgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.tar.gz2. 创建加压目录[root@localhost loca...

2019-09-12 22:19:43 780

原创 CentOS7下kafka安装和开机自动重启配置

由于kafka依赖于zookeeper所以应首先安装zookeeper。Zk安装1.下载zk从官网下载:http://apache.mirror.colo-serv.net/zookeeper/zookeeper-3.4.14/2.创建zk安装目录[root@localhost local]# mkdir zk3.解压zookeeper-3.4.14[root@lo...

2019-09-12 22:02:34 1258

原创 CentOS7下RabbitMq安装和开机自启动配置

安装RabbitMq由于rabbitmq是用erlang语言编写所以需要先安装erlang1.在安装erlang之前先安装下依赖文件(这一步不要忘掉了, 不然后面./configure的时候要报错):[root@localhost 20190903]# yum install gcc glibc-devel make ncurses-devel openssl-devel xml...

2019-09-12 21:37:28 11872 10

原创 CentOS7下安装Consul和自启动配置

安装1.下载Consul[root@localhost 20190903]wget https://releases.hashicorp.com/consul/0.9.3/consul_0.9.3_linux_amd64.zip2.解压[root@localhost 20190903]# unzip consul_0.9.3_linux_amd64.zip3.验证是否...

2019-09-11 23:26:22 4739

原创 CentOS7下ActitMq安装和自启动配置

1. 下载ActiveMQ,http://activemq.apache.org/activemq-5152-release2.上传到Centos上[root@localhost 20190903]# lsapache-activemq-5.15.2-bin.tar.gz jdk-8u211-linux-x64.tar.gz redis-3.0.6.tar.gz3.创建acti...

2019-09-11 22:57:45 152

原创 Cenos7下安装jdk

1.查看是否安装jdk(rpm -qa | grep java)2.卸载掉系统自带的jdk(箭头标识),命令:rpm -e --nodeps 后面跟系统自带的jdk名比如卸载第一个:rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64rpm -e --nodeps java-1.7.0-open...

2019-09-11 22:33:58 85

原创 Cenos7下安装Redis和自动重启配置

1.下载redis安装包2.解压安装包[root@localhost 20190903]# tar -zxvf /usr/20190903/redis-3.0.6.tar.gz -C /usr/local/redis3.编译安装Redis[root@localhost redis-3.0.6]# make&&make install执行之后在/usr...

2019-09-10 23:48:55 561 2

原创 Centos7下Nginx安装与自启动配置

第一:安装工具及依赖[root@localhost 20190903]# yum install -y wget make cmake gcc gcc-c++[root@localhost 20190903]# yum install -y pcre pcre-devel lib zlib-devel[root@localhost 20190903]#openssl openssl-d...

2019-09-10 23:31:33 1471

原创 Redis配置文件—redis.conf

常见配置redis.conf介绍:1.Redis默认不是以守护进程的方法运行,可以通过该配置修改,使用yes启用守护进程。daemonize no2.当Redis以守护进程的方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定。pidfile/var/run/redis.pid3.指定Redis监听端口,默认端口为6379,为

2018-01-18 19:07:19 270

原创 Redis基本数据类型

Redis五大数据类型(1)String(字符串):是Redis最基本的数据类型,可以理解成与Memcached一模一样的类型一个key对应一个value。String类型是二进制安全的。意思是Redis的String可以包含任何数据。比如jpg图片或者序列化的对象。String类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M。(2)Hash(哈希,类似java

2018-01-18 10:34:04 315

原创 用dbvisualizer查看informix数据库内容是乱码,怎么解决?

在连接URL中, 增加DB_LOCALE=en_us.819;CLIENT_LOCALE=en_us.57372;NEWCODESET=GBK,8859-1,819示例:jdbc:informix-sqli://:/:informixserver=;DB_LOCALE=en_us.819;CLIENT_LOCALE=en_us.57372;NEWCODESET=GBK,8859-1,819

2018-01-04 16:21:38 1294 2

原创 Infromix数据库海量数据备份

第一:导出数据常用命令:dbaccess << --!database bbspdp;unload to student.ins select * from disc_bill_info;!--bbspdp:数据库名称、student.ins:导出数据文件名称、disc_bill_info:为数据库表显示图片:特别提示:student.ins导出数据文件名称,

2017-12-27 11:03:09 434

原创 Mysql批量数据导入

建库创建数据库脚本CREATE DATABASE bigDate;USE bigDate;建表1.创建emp表CREATE TABLE `emp` ( `id` int(11) NOTNULL AUTO_INCREMENT COMMENT 'id', `empno`mediumint(9) NOT NULL DEFAULT '0' COMMENT '编号'

2017-12-11 21:21:07 430

原创 Mysql之我见九(表锁)

(1)表锁分析可以通过检查table_locks_waited和table_locks_immediate状态变量来分析系统上表锁定:SQL:show status like 'table%';重要结论:Myisam的读写锁调度是写优先,这也是myisam不适合做写主表的引擎,因为写锁后,其它线程不能做任何操作,大量的更新会使查询很难得到锁,从而造成永久阻塞。

2017-12-11 10:35:03 207

原创 Mysql之我见八(锁)

1.锁锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算机(cpu、RAM、I/O等)的争用以外,数据也是一种供多用户共享的资源,如何保证数据并发访问的一致性、有效是所有数据必须解决的一个问题,锁冲突也是影响数据库并发性能的一个重要因素,从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。读锁(共享锁):针对同一份数据,多个读操作可以同事进行而不相

2017-12-11 10:32:40 127

原创 Mysql之我见十(行锁)

(1)InnoDB同MyISAM对比缺点:InnoDB存储引擎,开销大,加锁慢,会出现死锁,锁定粒度最小,发生锁冲突的概率最低,并发度也不高。优点: InnoDB同MyISAM的最大不同有:支持事务、采用了行级锁。事务:由一组SQL语句组成的逻辑单元,事务具有以下4个属性,通常简称为事务的ACID属性。原子行(Atomicity):事务是一个原子的操作单元,其对数据的修改,要么全部

2017-12-10 22:17:05 356

原创 Mysql之我见六(查询截取分析)

(1)查询优化1.优化原则:小表驱动大表,即小的数据集驱动大的数据集2.Exists和In的区别Exists语法:select * from table where exists(subquery)将主查询的数据,放到子查询中做条件验证,根据条件的验证结果(true 或者 false)来决定查询的数据结果是否可以保留。A: exists(subqury)只返

2017-12-08 17:43:57 228

原创 Mysql之我见四(索引优化)

(1)索引失效的常见情况1.全值匹配2.最佳左前缀法则,如果索引有多列,要遵循最左前缀法则,指的是查询冲索引的最左前列开始并且 不跳过索引中的列。3.不要在索引上做任何的操作(计算、函数、(自动or手动)类型转换),会导致索引失效而转向全表扫描4.存储引擎不能使用索引中范围条件右边的列5.尽量使用覆盖索引(只访问索引的查询(索引和查询的列一致)),减小select *6

2017-12-07 15:12:15 150

原创 Mysql之我见三(join查询)

1.Sql解析2.常见join查询SELECT * FROM staff;SELECT * FROM department;(1)内链接(通俗的说就是取2张表的公共部分)select from TableA A inner join TableB B on A.Key=B.Key;SELECT * FROM staff

2017-12-06 19:22:20 549

原创 Mysql之我见二(索引)

1.索引Mysql官方对索引的定义为:Index是帮助Mysql高效获取数据的数据结构。(其本质索引是数据结构)也可以简单的理解为“排好序的快速查找的数据结构”。数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某张方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法这种数据结构就是索引。2.常用的创建索引的方法

2017-12-06 19:12:49 154

原创 Mysql之我见一(基础知识)

1.Mysql简介2.Mysql配置文件3.Mysql逻辑架构和其它数据库相比,Mysql有点与众不同,它的架构可以在多种不同的场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插拔式存储架构将查询处理和其它的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎。(1)连接层最上一层是一些客户端和连接服务,

2017-12-06 19:04:30 165

原创 WebService学习之我见

1.WebService是什么(1)基于Web的服务,服务器端整出来一些资源让客户端应用访问(获取数据)(2)一个跨语言、跨平台的规范(抽象)(3)多个跨平台、跨语言的应用间通信整合的方案(实际)

2017-12-05 15:43:50 156

原创 jbpm基础知识

1.fork和join联合起来来完成同步工作流2.decision节点来完成条件流转的定义,它是一种自动节点3.TaskNone任务节点,主要用来完成任务分配的定义4.startstate开始和结束节endstate点是一种伪节点。5.state状态节点表示一种等待状态。

2017-11-23 09:57:44 165

原创 java线程基础知识

(1)线程常用状态:1.新生状态(New Thread)在创建线程对象之后,尚未调用start()方法之前。这个线程就有了生命,此时线程仅仅是一个空对象,系统没有为期分配资源,此时只能 启动和终止线程,其他人和此操作都会引发异常。2.可运行状态(Runnable)在调用start()方法之后,系统为该线程分配除cpu外的所需资源,这个线程就有了运行的机会,此时处于可运行状态,

2017-11-23 09:55:37 116

原创 java反射

1.java反射机制是在运行状态中,动态获取信息以及动态调用对象方法功能。  2.  java反射的3个动态性质:    运行时生成对象实例    运行期间调用方法    运行时更改属性  3. java反射机制在编译时并不确定是哪个类被加载了,而是在运行时才加载、探知、使用,这就是反射的特点。  java反射机制能够知道类的基本结构,这种对java类结构探知的能力,称为jav

2017-11-22 09:38:58 212

转载 出现 DB2 SQL Error: SQLCODE = -798, SQLSTATE = 428C9 错误的原因及解决方法

1 错误描述在通过「DbVisualizer」执行 SQL 语句插入数据的时候,报出如下错误:2 错误原因通过观察上述标记出来的错误描述:DB2 SQL Error: SQLCODE = -798, SQLSTATE = 428C9, SQLERRMC = ID然后,查询「史上最全的 DB2 错误代码大全」可知,此错误的原因为:-

2017-11-20 11:31:27 2433

原创 oracle、DB2、Informix常用约束语句

alter table student disable constraint fk_student; --oracle  ALTER TABLE student ALTER FOREIGN KEY fk_student NOT ENFORCED;   --DB2   ALTER TABLE student ADD CONSTRAINT FOREIGN KEY (college_id

2017-09-28 17:37:39 749

原创 DB2常用命令

1.db2连接数据库su - db2inst1db2 connect to 数据库名 user 用户名 using 密码2.db2信息查询命令db2 list tables                     #列出所有表名 db2 describe table          #表名显示表字段   db2 list db directory            

2017-09-04 22:37:07 1824

转载 linux下db2数据库命令

1.db2连接数据库12su - db2inst1db2 connect to 数据库名 user 用户名 using 密码2.db2信息查询命令123456789

2017-09-04 22:24:07 34581

原创 Linux下导出db2数据库还原到windows下

Linux下导出db2数据库还原到windows下1. 切换用户su –db2inst12.    连接数据库db2 connect to 数据库名 user 用户名 using 密码3.  用db2look命令生成DDLdb2look -d bbsp -e -l -o db2look_bbsp.ddl其中bbsp为导出数据库的名称,db2loo

2017-09-04 22:21:36 5296

原创 Oracle中查询、禁用、启用、删除表外键

1、查询所有表的外键:[sql] view plain copyselect table_name, constraint_name from user_constraints where constraint_type = 'R';  2、禁用所有外键约束, 使用下面的sql生成对应sql脚本:[

2017-08-30 21:44:27 199

转载 Informix数据表结构分析资料整理之约束查询代码

本文主要整理了Informix数据库相关系统表数据,已分析整个Informix数据表结构,同时方便代码自动生成.提示一:systables 存放Informix数据库中所有数据表相关数据提示二:sysconstraints 存放Informix数据库中所有约束相关数据--获取所有用户表的主键约束名称select a.tabname,b.constrname,b.* fr

2017-08-30 20:24:45 468

oracle修改字符集

4.修改Oracle的编码和操作系统的一样。(参考别人的) 登陆用dba SQL> conn system/hundsun as sysdba; 停掉数据库 SQL>shutdown immediate; 启动数据库到mount状态下 SQL> STARTUP MOUNT; Java代码 收藏代码 ORACLE instance started. Total System Global Area 76619308 bytes Fixed Size 454188 bytes Variable Size 58720256 bytes Database Buffers 16777216 bytes Redo Buffers 667648 bytes Database mounted. SQL> ALTER SESSION SET SQL_TRACE=TRUE; Session altered. SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; System altered. SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; System altered. SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0; System altered. 启动数据库 SQL> Alter database open; 设置字符集 SQL> ALTER DATABASE CHARACTER SET ZHS16GBK; 先把数据库中的有中文乱码的清空了。 然后在执行。这是有可能报错 执行这个ALTER DATABASE character set INTERNAL_USE ZHS16GBK; 跳过字符集检查 关闭数据库 SQL> Shutdown immediate; 重启 SQL> startup;

2018-10-11

Myeclipse中导入工程步骤

在myeclipse下,myeclipse导入web工程的一本步骤和方法

2018-01-12

myeclipse项目转换成eclipse

myeclipse项目转换成eclipse,将web工程转化到eclipse下

2018-01-11

ppl-0.10.2-11.el6.i686.rpm

在linux下安装gcc所需要的离线安装包,针对的是linux系统是32位

2018-01-11

redis配置文件

Redis配置文件的例子 #单位注意:当需要内存大小时,可以指定 它通常以1k 5GB 4M的形式出现,依此类推: # #1k => 1000字节 #1kb => 1024字节 #1m => 1000000字节 #1mb => 1024 * 1024字节 #1g => 1000000000字节 #1gb => 1024 * 1024 * 1024字节 # #单位不区分大小写,所以1GB 1Gb 1GB都是一样的。

2018-01-11

struts2+MySQL+jfreechart生成带热点

struts2+MySQL+jfreechart生成带热点

2015-01-25

struts2+mysql+jfreechart

用struts2+mysql+jfreechart来开发图形展示

2015-01-23

EasyARM283移植sqlite3

详细介绍在EasyARM283移植sqlite3的全过程

2014-05-27

SSH框架开发

用SSH框架来开发的用户登录的小实例,操作简单,附有代码

2013-12-16

安卓手机短信发不出去设置方法

本文档详细介绍了安卓手机短信发不出去设置方法,可以解决发不出短信的问题

2013-12-15

myeclipse9.0M1安装SVN插件档

myeclipse9.0M1的安装SVN插件的详细步骤

2013-11-09

linux c编程入门.pdf

linux c编程入门.pdf,该文章详细介绍了linux下 c编程的方法啊

2013-10-28

C函数速查 chm

C函数速查手册,可以快速的查找常用的C语言函数

2013-10-28

Linux下的makefile的

Linux下的makefile的编程指南,本文详细介绍了Linux下的makefile如何使用

2013-10-28

C++编程指南

C++编程指南,详细介绍C++编程,介绍了一些常用的函数

2013-10-28

GMSK基带调制解调的实现

GMSK基带调制解调的实现

2013-09-19

VMware序列号

在安装VMware时候,VMware序列号

2013-09-19

VMware独品入门教程

VMware独品入门教程,详细讲述VMware安装过程

2013-09-19

QrCodeTest.rar

本代码是2维码,用MFC写的,大家可以参考啊

2013-07-16

Cywin+eclinux+arm.docx

本文介绍了用Cywin+eclinux+arm 开发linux环境的搭建

2013-07-16

javaweb.ppt

本文详细讲解了如何用myeclipse+tomcat开发web,对初学web开发环境的搭建帮助很大

2013-07-16

eclipse中常用配置

本文讲解了eclipse中常用配置,对初学eclipse的帮助很大啊

2013-07-16

( 数字图像处理与模式识别

、如何让机器自动进行模式识别? 模式识别的定义:根据对某个物理对象的观测信息,利用计算机对该物理对象进行分类,从而给出该物理对象所属的类别。在这里,“模式”就是指存储于计算机内的有关物理对象的观测信息,它可以是图像、声音、温度、压力等任何可以测量的观测量。为了让机器自动完成模式识别任务,我们需要(1)数据采集设备(2)模式识别算法

2013-07-07

joffice文档

// Chat.cpp : 定义应用程序的类行为。 // #include "stdafx.h" #include "Chat.h" #include "ChatDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CChatApp BEGIN_MESSAGE_MAP(CChatApp, CWinApp) ON_COMMAND(ID_HELP, &CWinApp::OnHelp) END_MESSAGE_MAP() // CChatApp 构造 CChatApp::CChatApp() { // 支持重新启动管理器 m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART; // TODO: 在此处添加构造代码, // 将所有重要的初始化放置在 InitInstance 中 } // 唯一的一个 CChatApp 对象 CChatApp theApp; // CChatApp 初始化 BOOL CChatApp::InitInstance() { // 如果一个运行在 Windows XP 上的应用程序清单指定要 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式, //则需要 InitCommonControlsEx()。否则,将无法创建窗口。 INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 将它设置为包括所有要在应用程序中使用的 // 公共控件类。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); if(!AfxSocketInit()) { AfxMessageBox(_T("加载套接字库失败!")); return FALSE; } AfxEnableControlContainer(); // 创建 shell 管理器,以防对话框包含 // 任何 shell 树视图控件或 shell 列表视图控件。 CShellManager *pShellManager = new CShellManager; // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("应用程序向导生成的本地应用程序")); CChatDlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: 在此放置处理何时用 // “确定”来关闭对话框的代码 } else if (nResponse == IDCANCEL) { // TODO: 在此放置处理何时用 // “取消”来关闭对话框的代码 } // 删除上面创建的 shell 管理器。 if (pShellManager != NULL) { delete pShellManager; } // 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序, // 而不是启动应用程序的消息泵。 return FALSE; }

2013-04-14

VC chat.cpp

VC做的聊天小程序 // Chat.cpp : 定义应用程序的类行为。 // #include "stdafx.h" #include "Chat.h" #include "ChatDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CChatApp BEGIN_MESSAGE_MAP(CChatApp, CWinApp) ON_COMMAND(ID_HELP, &CWinApp::OnHelp) END_MESSAGE_MAP() // CChatApp 构造 CChatApp::CChatApp() { // 支持重新启动管理器 m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART; // TODO: 在此处添加构造代码, // 将所有重要的初始化放置在 InitInstance 中 } // 唯一的一个 CChatApp 对象 CChatApp theApp; // CChatApp 初始化 BOOL CChatApp::InitInstance() { // 如果一个运行在 Windows XP 上的应用程序清单指定要 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式, //则需要 InitCommonControlsEx()。否则,将无法创建窗口。 INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 将它设置为包括所有要在应用程序中使用的 // 公共控件类。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); if(!AfxSocketInit()) { AfxMessageBox(_T("加载套接字库失败!")); return FALSE; } AfxEnableControlContainer(); // 创建 shell 管理器,以防对话框包含 // 任何 shell 树视图控件或 shell 列表视图控件。 CShellManager *pShellManager = new CShellManager; // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("应用程序向导生成的本地应用程序")); CChatDlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: 在此放置处理何时用 // “确定”来关闭对话框的代码 } else if (nResponse == IDCANCEL) { // TODO: 在此放置处理何时用 // “取消”来关闭对话框的代码 } // 删除上面创建的 shell 管理器。 if (pShellManager != NULL) { delete pShellManager; } // 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序, // 而不是启动应用程序的消息泵。 return FALSE; }

2013-04-14

空空如也

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

TA关注的人

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