主页

windows用c创建进程

一、前言 在windows服务的设计理念中,服务就是应该在后面默默无闻的跑,不要搞什么GUI之类的,但是凡事都有但是的时候,因为有些业务程序需要像服务程序一样的运行方式,也需要拥有GUI界面.然后,后面就有个session 0 隔离了,具体我也不多讲了,我也不懂.具体的百度吧哈哈哈. 二、上代码 无GUI创建进程 PROCESS_INFORMATION pi; //子进程句柄 DWORD returnCode; //子进程返回码 STARTUPINFO si = { sizeof(STARTUPINFO) }; BOOL CreateProcessNoService(c...

阅读更多

用c写windows服务程序

一、前言 最近公司需要在windows平台上做一个服务程序,不幸的是这个任务落在我这个不怎么会c/c++的人身上了,于是拿起一本«C语言入门到精通»就开始干了.在编码期间发现win32 API 有不少的坑.在此记录一下. 二、上代码 安装服务,相当于在服务控制器中注册一个服务. //判断是否已经安装过服务 BOOL IsInstalled() { BOOL bResult = FALSE; SC_HANDLE hScm = OpenSCManager(NULL, NULL, SC_MANAGER_CREATE_SERVICE); if (hScm != NULL) { SC_HANDLE hService = OpenService...

阅读更多

windows解决logback中文乱码,以及高亮问题

前言 近日在windows上开发一款小工具,为了方便排查问题,特地的加入了logback进行记录日志,奈何在cmd中运行的时候中文就乱码了,并且也没有颜色高亮.下文就是我的解决办法. 一、中文乱码 面对中文乱码这个问题,首先想到的是改编码集,这里就分为两个端了.可以改cmd的编码集,也可以改java的编码集.一上最方便的是改cmd的编码,只需要在命令执行之前加上一句chcp 65001就可以了.但是这种方式感觉不太自然,于是就跑去改了logback的编码,logback修改编码也很简单.配置如下: <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <enc...

阅读更多

关于JDBC中的Mysql 6.x驱动所遇到的坑

一、起因 最近看到maven仓库里面mysql的JDBC驱动都是6.x了,所以想更新一波,本以为使用方式跟以前是差不多的,没想到还是遇到了几个坑呀。所以写点东西权当记录. 二、区别 首先的区别就是在JDBC连接的URL上面的区别,之前的写法是这样的 jdbc:mysql://127.0.0.1:30002/smssvr?useUnicode=true&characterEncoding=utf8 如果使用原的写法,你会发现启动项目的时候会报错,说是要添加什么时区。然后就变成这样的写法 jdbc:mysql://127.0.0.1:30002/smssvr?serverTimezone=UTC&useUnicode=true&characterEncodin...

阅读更多

Mac OS X打包Redis Desktop Manager(RDM)

前言 编译好Redis Desktop Manager 之后,本机电脑是可以跑的,但是其他电脑就不一定能跑了,因为有些依赖在其他电脑上不一定有,或者路径不一样,这时,我们就需要把依赖打入到app中. 第一步,编译Redis Desktop Manager 编译好Redis Desktop Manager ,这个是大前提,如果不知道怎么编译的同学可以参考我的另一篇文章 Mac OS X下编译Redis Desktop Manager(RDM). 第二步,分析目录结构 编译好的app,其实在mac上面是个以.app结尾的目录.其结构如下,(为了减少篇幅,省略了一些目录) /* rdm.app └── Contents ├── Frameworks #依赖 ...

阅读更多

Mac OS X下编译Redis Desktop Manager(RDM)的依赖crashreporter

前言 在Redis Desktop Manager(RDM) 官网上已经不提供0.9.x版本之后的Mac dmg包了,官方给我们的选择是要么付费订阅,要么自己手动编译(有条件的同学可以付费支持一下,毕竟开源不容易!).在之前我写了一篇通过源码编译RDM的教程,但编译的时候是忽略掉crashreporter这个依赖的(感觉这个没啥太大用处),为了不上之前的坑,特地在写一篇编译crashreporter的教程. 第一步,下载crashreporter源码 git clone https://github.com/RedisDesktop/CrashReporter.git 第二步,配置QT 选择release 配置QT编译参数,...

阅读更多

使用fastjson打印日志的坑

一、前言 项目打印日志是使用AOP实现的,把controller方法上的参数和返回值全部使用fastjson转换为json字符串打印出来,方便观察方法调用情况.最近同事遇到了一个在打印日志的时候,fastjson 序列化的异常,这个异常不影响业务逻辑,作为一个有强迫症的人,始终是觉得有问题的,于是跟着错误信息就找了下去. 二、症状 看看异常信息吧! 从异常的信息可以看出,在fastjson把对象转json字符串的时候遇到了问题,貌似从这个图片中看不出啥问题,该图片下面还有一段异常信息,如下: java.lang.IllegalStateException: It is illegal to call this method if the current request i...

阅读更多

javaFX 打包插件使用方法

一、前言 写了几天javaFX应用,也该写完,打包成应用了.在网上查了一下,大多数都是在介绍使用IDEA的打包方式,用了一下感觉有点略坑呀.反正我是没有成功打包成exe文件.接下来就轮到我们主角来了.一个maven的打包插件,配置可能会稍微麻烦点,但效果比IDEA好多了(IDEA我没打包成功过,可能是使用的姿势不对吧,如果有正确的姿势,请给我留言,谢谢昂). 二、进入主题 首先要安装这个插件的依赖软件,主要是用于打包的,总共两个软件一个是WiX Toolset v3.11.1(注意:安装好以后把bin添加在环境变量中),另外一个是Inno Setup,安装好以后就配置一下POM 文件就可以了.pom文件配置如下 <plugin> <groupId>...

阅读更多