- MFC测试Windows消息处理机制、阻塞试验、SetTimer、MessageBox、消息响应处理函数
luckyone906
windows机制mfcwindowsmicrosoft
VC6标准WIN32程序,Windows消息处理机制:1.在注册窗口类时,指定了消息处理函数WndProc()。2.WinMain()里有消息循环:while(GetMessage(&msg,NULL,0,0)){if(!TranslateAccelerator(msg.hwnd,hAccelTable,&msg)){TranslateMessage(&msg);DispatchMessage(&
- VC编程Windows消息处理机制、阻塞试验、SetTimer、MessageBox、小心消息响应处理函数
cytj129
VC6标准WIN32程序,Windows消息处理机制:1.在注册窗口类时,指定了消息处理函数WndProc()。2.WinMain()里有消息循环:while(GetMessage(&msg,NULL,0,0)){if(!TranslateAccelerator(msg.hwnd,hAccelTable,&msg)){TranslateMessage(&msg);DispatchMessage(&
- TranslateAccelerator函数
逍神
Windows窗口函数
TranslateAccelerator(msg.hwnd,hAccelTable,&msg)我们转到定义,intWINAPITranslateAcceleratorW(_In_HWNDhWnd,//窗口句柄。该窗口的消息将被翻译_In_HACCELhAccTable,//快捷键表句柄。快捷键表由前面LoadAccelerators函数调用装入_In_LPMSGlpMsg);//结构指针。MSG结
- TranslateAccelerator
weixin_34148508
TranslateAccelerator目录相关介绍加强键组合展开编辑本段相关介绍函数功能:翻译加速键表。该函数处理菜单命令中的加速键。该函数将一个WM_KEYDOWN或WM_SYSKEYDOWN消息翻译成一个WM_COMMAND或WM_SYSCOMMAND消息(如果在给定的加速键表中有该键的入口),然后将WM_COMMAND或WM_SYSCOMMAND消息直接送到相应的窗口处理过程。Transl
- IDocHostUIHandler::TranslateAccelerator快捷键不响应解决办法(即ctrl+c, ctrl+v不起作用解决办法)
sgzwiz
ctrl+c,ctrl+v不起作用的时候,如果使用的是CHtmlView,那么是它的一个BUG,在资源文件中加入以下内容可以解决://///Accelerator//IDC_XTPRO2ACCELERATORSBEGIN“C”,ID_EDIT_COPY,VIRTKEY,CONTROL,NOINVERT“X”,ID_EDIT_CUT,VIRTKEY,CONTROL,NOINVERT“V”,ID_ED
- TranslateAccelerator的使用
mjlsuccess
vc++
函数功能:翻译加速键表。该函数处理菜单命令中的加速键。该函数将一个WM_KEYDOWN或WM_SYSKEYDOWN消息翻译成一个WM_COMMAND或WM_SYSCOMMAND消息(如果在给定的加速键表中有该键的入口),然后将WM_COMMAND或WM_SYSCOMMAND消息直接送到相应的窗口处理过程。TranslateAccelerator直到窗口过程处理完消息后才返回。函数原型:intTra
- Windows API (DAY12) Trans lateAccelerator 函数
狼走西河
Windows编程
当应用程序运行时,用户按下快捷键,这样就产生了一个按键消息,那么Windows是怎么样把它转化为快捷键响应的消息呢?这就需要使用TranslateAccelerator函数。TranslateAccelerator函数主要的作用就是把消息跟快捷键表里定义的按键进行比较,如果发现有快捷键,就会把这个按键消息转换为WM_COMMAND或者WM_SYSCOMMAND消息给窗口的消息处理函数发送过去。函数
- 得到IOleInPlaceActiveObject接口,IOleInPlaceActiveObject::TranslateAccelerator(&msg);
小发猫
(2)是否WebBrowser自己处理了加速键?我忽略了这个点。MFC实现过程:1、在消息循环中处理TranslateAccelerator之前转发消息。具体操作是。得到IOleInPlaceActiveObject接口,IOleInPlaceActiveObject::TranslateAccelerator(&msg);向控件发消息。2、如果控件处于击活。OLEIVERB_UIACTIVATE
- OLE SDK——框架界面(七):IOleInPlaceFrame::TranslateAccelerator
hqywork
VC-SDK-OLE
IOleInPlaceFrame::TranslateAccelerator当一个对象在位激活的时候,有意的为容器的框架翻译加速键。HRESULTTranslateAccelerator(LPMSGlpmsg,//指向结构WORDwID//命令标识值);参数lpmsg包含键信息的MSG结构指针wID命令标识值在容器提供的加速表中对应的键。容器应该使用这个值替代重新翻译。返回值这个方法支持标准返回值
- Windows API一日一练(12)TranslateAccelerator函数
anjichan4261
当应用程序运行时,用户按下快捷键,这样就产生了一个按键消息,那么Windows是怎么样把它转化为快捷键响应的消息呢?这就需要使用TranslateAccelerator函数。TranslateAccelerator函数主要的作用就是把消息跟快捷键表里定义的按键进行比较,如果发现有快捷键,就会把这个按键消息转换为WM_COMMAND或者WM_SYSCOMMAND消息给窗口的消息处理函数发送过去。函数
- Windows API一日一练(12)TranslateAccelerator函数
andylin02
C/C++windowsapiwinapicommandnullqq
WindowsAPI一日一练(12)TranslateAccelerator函数当应用程序运行时,用户按下快捷键,这样就产生了一个按键消息,那么Windows是怎么样把它转化为快捷键响应的消息呢?这就需要使用TranslateAccelerator函数。TranslateAccelerator函数主要的作用就是把消息跟快捷键表里定义的按键进行比较,如果发现有快捷键,就会把这个按键消息转换为WM_C
- translateaccelerator
WinApiExample
T
函数功能:翻译加速键表。该函数处理菜单命令中的加速键。该函数将一个WM-DEYDOUN或WM-SYSDEYDOWN消息翻译或一个WM-COMMAND或WM-SYSCOMMAND消息(如果在给定的加速键表中有该键的入口),然后将WM-COMMAND或WM-SYSCOMMAND消息直接送到相应的窗口处理过程。TranslateAccelerator直到窗口过程处理完消息后才返回。函数原型:intTra
- LoadAccelerators & TranslateAccelerator
iteye_8808
对于快捷键,例如CTRL+O,直接打开某个特定的Form。1.定义resource文件,里面绑定好菜单名称-->UID,例如:ABCForm-->0x0301同时定义好快捷键绑定关系,例如:"O",0x0301,VIRTKEY,CONTROL,NOINVERT"D",0xC603,VIRTKEY,CONTROL,NOINVERT"D",0x500A,VIRTKEY,CONTROL,SHIFT,NO
- win 32 消息机制
Limit_Fly
win32学习
文章目录产生消息传递消息处理消息重要消息鼠标消息计时器消息消息机制产生消息传递消息处理消息上述的过程被称为消息机制//主消息循环:while(GetMessage(&msg,nullptr,0,0)){if(!TranslateAccelerator(msg.hwnd,hAccelTable,&msg)){TranslateMessage(&msg);DispatchMessage(&msg);}
- Windows API一日一练(12)TranslateAccelerator函数
translate
当应用程序运行时,用户按下快捷键,这样就产生了一个按键消息,那么 Windows 是怎么样把它转化为快捷键响应的消息呢?这就需要使用 TranslateAccelerator 函数。 TranslateAccelerator 函数主要的作用就是把消息跟快捷键表里定义的按键进行比较,如果发现有快捷键,就会把这个按键消息转换为 WM_COMMAND 或者 WM_SYSCOMMAND 消
- VC++ 对话框程序响应键盘消息的处理方法的说明(非常重要)
鹿我所录
基于MFC对话框的应用程序在响应按键消息和热键方面都力不从心,CDialog类的消息循环中去掉了TranslateAccelerator函数,因此不能响应热键;同时由于对话框上可能有很多控件,且默认情况下这些子窗口已经截获了焦点,因此键盘消息已经被控件捕获了;同时为了实现控件焦点切换和对话框默认行为, VK_TAB、VK_LEFT、VK_RIGHT、VK_UP、VK_DOWN、VK_RETURN、
- Windows API一日一练(12)TranslateAccelerator函数
translate
当应用程序运行时,用户按下快捷键,这样就产生了一个按键消息,那么Windows是怎么样把它转化为快捷键响应的消息呢?这就需要使用TranslateAccelerator函数。TranslateAccelerator函数主要的作用就是把消息跟快捷键表里定义的按键进行比较,如果发现有快捷键,就会把这个按键消息转换为WM_COMMAND或者WM_SYSCOMMAND消息给窗口的消息处理函数发送过去。函数
- 主事件循环
qq981932962
C++windows应用程序
主循环一般如此写:while(GetMessage(&msg,NULL,0,0))
{
if(!TranslateAccelerator(msg.hwnd,hAccelTable,&msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}首先在这个主循环之间,main函数已经对当前窗口类定制了其对应的消息处理函数WndProc。这个消息循
- win32sdk学习-window消息机制
sujudz
structcommandnull存储dialogcallback
//*主消息循环*//
while(GetMessage(&msg,NULL,0,0))
{
//加速键捕获处理
if(!TranslateAccelerator(hwnd,haccel,&msg))
{
//非模态对话框消息处理
if(hwnd==NULL||!IsDialogMessage(hwnd,&msg))
{
TranslateMessage(&msg);
Disp
- 得到IOleInPlaceActiveObject接口,IOleInPlaceActiveObject::TranslateAccelerator(&msg);
i_like_cpp
mfcWebBrowser
(2)是否WebBrowser自己处理了加速键?我忽略了这个点。MFC实现过程:1、在消息循环中处理TranslateAccelerator之前转发消息。具体操作是。得到IOleInPlaceActiveObject接口,IOleInPlaceActiveObject::TranslateAccelerator(&msg);向控件发消息。2、如果控件处于击活。OLEIVERB_UIACTIVATE
- TranslateAccelerator
wellwy
参数职场休闲
TranslateAccelerator 目录相关介绍加强键组合展开 编辑本段相关介绍函数功能:翻译加速键表。该函数处理菜单命令中的加速键。该函数将一个WM_KEYDOWN或WM_SYSKEYDOWN消息翻译成一个WM_COMMAND或WM_SYSCOMMAND消息(如果在给定的加速键表中有该键的入口),然后将WM_COMMAND或WM_SYSCOMMAND消息直接送到相应的窗口处理过程。 Tr
- 使用WM_QUIT终止线程
jetyi
线程消息循环休闲终止WM_QUIT
下面是一个线程1的函数:
ThreadFun1
{
....// A
while (::GetMessage(&msg, NULL, 0, 0))
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
- LoadAccelerators & TranslateAccelerator
JavaFans
C++cwindowsMicrosoftC#
对于快捷键,例如CTRL+O,直接打开某个特定的Form。
1. 定义resource文件,里面绑定好 菜单名称-->UID, 例如:ABCForm --> 0x0301
同时定义好快捷键绑定关系,例如:
"O", 0x0301, VIRTKEY, CONTROL, NOINVERT
"D", 0xC603
- C#中键盘事件在WndProc函数之前的处理流程
lovnet
proc
窗体和控件在WndProc处理函数处理键盘消息之前,都要进行预处理。本文就介绍在键盘事件被WndProc处理之前所经过的处理过程。
以下介绍是文本描述的示意介绍,和真正的代码流程(TranslateAccelerator,TranslateMessage,DispatchMessage处理)有区别,仅仅便于理解。
在一个私有函数中进行消息的内部处理,流程如下:
internal PreP
- C#中键盘事件在WndProc函数之前的处理流程
zztfj
窗体和控件在WndProc处理函数处理键盘消息之前,都要进行预处理。本文就介绍在键盘事件被WndProc处理之前所经过的处理过程。以下介绍是文本描述的示意介绍,和真正的代码流程(TranslateAccelerator,TranslateMessage,DispatchMessage处理)有区别,仅仅便于理解。 在一个私有函数中进行消息的内部处理,流程如下: internalPreProcessC
- (12)TranslateAccelerator函数
yfqvip
windowscommandnull
当应用程序运行时,用户按下快捷键,这样就产生了一个按键消息,那么Windows是怎么样把它转化为快捷键响应的消息呢?这就需要使用TranslateAccelerator函数。TranslateAccelerator函数主要的作用就是把消息跟快捷键表里定义的按键进行比较,如果发现有快捷键,就会把这个按键消息转换为WM_COMMAND或者WM_SYSCOMMAND消息给窗口的消息处理函数发送过去。函数
- Windows API一日一练(12)TranslateAccelerator函数
caimouse
windowsapicommandnullwinapi
当应用程序运行时,用户按下快捷键,这样就产生了一个按键消息,那么Windows是怎么样把它转化为快捷键响应的消息呢?这就需要使用TranslateAccelerator函数。TranslateAccelerator函数主要的作用就是把消息跟快捷键表里定义的按键进行比较,如果发现有快捷键,就会把这个按键消息转换为WM_COMMAND或者WM_SYSCOMMAND消息给窗口的消息处理函数发送过去。函
- Hadoop(一)
朱辉辉33
hadooplinux
今天在诺基亚第一天开始培训大数据,因为之前没接触过Linux,所以这次一起学了,任务量还是蛮大的。
首先下载安装了Xshell软件,然后公司给了账号密码连接上了河南郑州那边的服务器,接下来开始按照给的资料学习,全英文的,头也不讲解,说锻炼我们的学习能力,然后就开始跌跌撞撞的自学。这里写部分已经运行成功的代码吧.
在hdfs下,运行hadoop fs -mkdir /u
- maven An error occurred while filtering resources
blackproof
maven报错
转:http://stackoverflow.com/questions/18145774/eclipse-an-error-occurred-while-filtering-resources
maven报错:
maven An error occurred while filtering resources
Maven -> Update Proje
- jdk常用故障排查命令
daysinsun
jvm
linux下常见定位命令:
1、jps 输出Java进程
-q 只输出进程ID的名称,省略主类的名称;
-m 输出进程启动时传递给main函数的参数;
&nb
- java 位移运算与乘法运算
周凡杨
java位移运算乘法
对于 JAVA 编程中,适当的采用位移运算,会减少代码的运行时间,提高项目的运行效率。这个可以从一道面试题说起:
问题:
用最有效率的方法算出2 乘以8 等於几?”
答案:2 << 3
由此就引发了我的思考,为什么位移运算会比乘法运算更快呢?其实简单的想想,计算机的内存是用由 0 和 1 组成的二
- java中的枚举(enmu)
g21121
java
从jdk1.5开始,java增加了enum(枚举)这个类型,但是大家在平时运用中还是比较少用到枚举的,而且很多人和我一样对枚举一知半解,下面就跟大家一起学习下enmu枚举。先看一个最简单的枚举类型,一个返回类型的枚举:
public enum ResultType {
/**
* 成功
*/
SUCCESS,
/**
* 失败
*/
FAIL,
- MQ初级学习
510888780
activemq
1.下载ActiveMQ
去官方网站下载:http://activemq.apache.org/
2.运行ActiveMQ
解压缩apache-activemq-5.9.0-bin.zip到C盘,然后双击apache-activemq-5.9.0-\bin\activemq-admin.bat运行ActiveMQ程序。
启动ActiveMQ以后,登陆:http://localhos
- Spring_Transactional_Propagation
布衣凌宇
springtransactional
//事务传播属性
@Transactional(propagation=Propagation.REQUIRED)//如果有事务,那么加入事务,没有的话新创建一个
@Transactional(propagation=Propagation.NOT_SUPPORTED)//这个方法不开启事务
@Transactional(propagation=Propagation.REQUIREDS_N
- 我的spring学习笔记12-idref与ref的区别
aijuans
spring
idref用来将容器内其他bean的id传给<constructor-arg>/<property>元素,同时提供错误验证功能。例如:
<bean id ="theTargetBean" class="..." />
<bean id ="theClientBean" class=&quo
- Jqplot之折线图
antlove
jsjqueryWebtimeseriesjqplot
timeseriesChart.html
<script type="text/javascript" src="jslib/jquery.min.js"></script>
<script type="text/javascript" src="jslib/excanvas.min.js&
- JDBC中事务处理应用
百合不是茶
javaJDBC编程事务控制语句
解释事务的概念; 事务控制是sql语句中的核心之一;事务控制的作用就是保证数据的正常执行与异常之后可以恢复
事务常用命令:
Commit提交
- [转]ConcurrentHashMap Collections.synchronizedMap和Hashtable讨论
bijian1013
java多线程线程安全HashMap
在Java类库中出现的第一个关联的集合类是Hashtable,它是JDK1.0的一部分。 Hashtable提供了一种易于使用的、线程安全的、关联的map功能,这当然也是方便的。然而,线程安全性是凭代价换来的――Hashtable的所有方法都是同步的。此时,无竞争的同步会导致可观的性能代价。Hashtable的后继者HashMap是作为JDK1.2中的集合框架的一部分出现的,它通过提供一个不同步的
- ng-if与ng-show、ng-hide指令的区别和注意事项
bijian1013
JavaScriptAngularJS
angularJS中的ng-show、ng-hide、ng-if指令都可以用来控制dom元素的显示或隐藏。ng-show和ng-hide根据所给表达式的值来显示或隐藏HTML元素。当赋值给ng-show指令的值为false时元素会被隐藏,值为true时元素会显示。ng-hide功能类似,使用方式相反。元素的显示或
- 【持久化框架MyBatis3七】MyBatis3定义typeHandler
bit1129
TypeHandler
什么是typeHandler?
typeHandler用于将某个类型的数据映射到表的某一列上,以完成MyBatis列跟某个属性的映射
内置typeHandler
MyBatis内置了很多typeHandler,这写typeHandler通过org.apache.ibatis.type.TypeHandlerRegistry进行注册,比如对于日期型数据的typeHandler,
- 上传下载文件rz,sz命令
bitcarter
linux命令rz
刚开始使用rz上传和sz下载命令:
因为我们是通过secureCRT终端工具进行使用的所以会有上传下载这样的需求:
我遇到的问题:
sz下载A文件10M左右,没有问题
但是将这个文件A再传到另一天服务器上时就出现传不上去,甚至出现乱码,死掉现象,具体问题
解决方法:
上传命令改为;rz -ybe
下载命令改为:sz -be filename
如果还是有问题:
那就是文
- 通过ngx-lua来统计nginx上的虚拟主机性能数据
ronin47
ngx-lua 统计 解禁ip
介绍
以前我们为nginx做统计,都是通过对日志的分析来完成.比较麻烦,现在基于ngx_lua插件,开发了实时统计站点状态的脚本,解放生产力.项目主页: https://github.com/skyeydemon/ngx-lua-stats 功能
支持分不同虚拟主机统计, 同一个虚拟主机下可以分不同的location统计.
可以统计与query-times request-time
- java-68-把数组排成最小的数。一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的。例如输入数组{32, 321},则输出32132
bylijinnan
java
import java.util.Arrays;
import java.util.Comparator;
public class MinNumFromIntArray {
/**
* Q68输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。
* 例如输入数组{32, 321},则输出这两个能排成的最小数字32132。请给出解决问题
- Oracle基本操作
ccii
Oracle SQL总结Oracle SQL语法Oracle基本操作Oracle SQL
一、表操作
1. 常用数据类型
NUMBER(p,s):可变长度的数字。p表示整数加小数的最大位数,s为最大小数位数。支持最大精度为38位
NVARCHAR2(size):变长字符串,最大长度为4000字节(以字符数为单位)
VARCHAR2(size):变长字符串,最大长度为4000字节(以字节数为单位)
CHAR(size):定长字符串,最大长度为2000字节,最小为1字节,默认
- [强人工智能]实现强人工智能的路线图
comsci
人工智能
1:创建一个用于记录拓扑网络连接的矩阵数据表
2:自动构造或者人工复制一个包含10万个连接(1000*1000)的流程图
3:将这个流程图导入到矩阵数据表中
4:在矩阵的每个有意义的节点中嵌入一段简单的
- 给Tomcat,Apache配置gzip压缩(HTTP压缩)功能
cwqcwqmax9
apache
背景:
HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求网页后,从服务器端将网页文件压缩,再下载到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。更为重要的是,它可以对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩,
- SpringMVC and Struts2
dashuaifu
struts2springMVC
SpringMVC VS Struts2
1:
spring3开发效率高于struts
2:
spring3 mvc可以认为已经100%零配置
3:
struts2是类级别的拦截, 一个类对应一个request上下文,
springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应
所以说从架构本身上 spring3 mvc就容易实现r
- windows常用命令行命令
dcj3sjt126com
windowscmdcommand
在windows系统中,点击开始-运行,可以直接输入命令行,快速打开一些原本需要多次点击图标才能打开的界面,如常用的输入cmd打开dos命令行,输入taskmgr打开任务管理器。此处列出了网上搜集到的一些常用命令。winver 检查windows版本 wmimgmt.msc 打开windows管理体系结构(wmi) wupdmgr windows更新程序 wscrip
- 再看知名应用背后的第三方开源项目
dcj3sjt126com
ios
知名应用程序的设计和技术一直都是开发者需要学习的,同样这些应用所使用的开源框架也是不可忽视的一部分。此前《
iOS第三方开源库的吐槽和备忘》中作者ibireme列举了国内多款知名应用所使用的开源框架,并对其中一些框架进行了分析,同样国外开发者
@iOSCowboy也在博客中给我们列出了国外多款知名应用使用的开源框架。另外txx's blog中详细介绍了
Facebook Paper使用的第三
- Objective-c单例模式的正确写法
jsntghf
单例iosiPhone
一般情况下,可能我们写的单例模式是这样的:
#import <Foundation/Foundation.h>
@interface Downloader : NSObject
+ (instancetype)sharedDownloader;
@end
#import "Downloader.h"
@implementation
- jquery easyui datagrid 加载成功,选中某一行
hae
jqueryeasyuidatagrid数据加载
1.首先你需要设置datagrid的onLoadSuccess
$(
'#dg'
).datagrid({onLoadSuccess :
function
(data){
$(
'#dg'
).datagrid(
'selectRow'
,3);
}});
2.onL
- jQuery用户数字打分评价效果
ini
JavaScripthtmljqueryWebcss
效果体验:http://hovertree.com/texiao/jquery/5.htmHTML文件代码:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>jQuery用户数字打分评分代码 - HoverTree</
- mybatis的paramType
kerryg
DAOsql
MyBatis传多个参数:
1、采用#{0},#{1}获得参数:
Dao层函数方法:
public User selectUser(String name,String area);
对应的Mapper.xml
<select id="selectUser" result
- centos 7安装mysql5.5
MrLee23
centos
首先centos7 已经不支持mysql,因为收费了你懂得,所以内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb,以下为卸载mariadb,安装mysql的步骤。
#列出所有被安装的rpm package rpm -qa | grep mariadb
#卸载
rpm -e mariadb-libs-5.
- 利用thrift来实现消息群发
qifeifei
thrift
Thrift项目一般用来做内部项目接偶用的,还有能跨不同语言的功能,非常方便,一般前端系统和后台server线上都是3个节点,然后前端通过获取client来访问后台server,那么如果是多太server,就是有一个负载均衡的方法,然后最后访问其中一个节点。那么换个思路,能不能发送给所有节点的server呢,如果能就
- 实现一个sizeof获取Java对象大小
teasp
javaHotSpot内存对象大小sizeof
由于Java的设计者不想让程序员管理和了解内存的使用,我们想要知道一个对象在内存中的大小变得比较困难了。本文提供了可以获取对象的大小的方法,但是由于各个虚拟机在内存使用上可能存在不同,因此该方法不能在各虚拟机上都适用,而是仅在hotspot 32位虚拟机上,或者其它内存管理方式与hotspot 32位虚拟机相同的虚拟机上 适用。
- SVN错误及处理
xiangqian0505
SVN提交文件时服务器强行关闭
在SVN服务控制台打开资源库“SVN无法读取current” ---摘自网络 写道 SVN无法读取current修复方法 Can't read file : End of file found
文件:repository/db/txn_current、repository/db/current
其中current记录当前最新版本号,txn_current记录版本库中版本