2013年12月26日
摘要: 伴随着研究Windows服务,逐渐掌握了一些小技巧,现在与大家分享一下。将Windows服务转变为控制台程序由于默认的Windows服务程序,编译后为Win32的窗口程序。我们在程序启动或运行过程中,如果想看到一些调试信息,那么就只能通过DebugView或者输出到日志的方式了。因为如果我们通过pr... 阅读全文
posted @ 2013-12-26 00:36 缘生梦 阅读(15165) 评论(0) 推荐(5) 编辑
  2013年12月25日
摘要: 通过研究Windows服务注册卸载的原理,感觉它并没有什么特别复杂的东西,Windows服务正在一步步退去它那神秘的面纱,至于是不是美女,大家可要睁大眼睛看清楚了。接下来研究一下Windows服务的启动和停止的流程。启动流程启动时自然是从程序的入口点开始extern "C" int WINAPI _... 阅读全文
posted @ 2013-12-25 00:46 缘生梦 阅读(14167) 评论(1) 推荐(6) 编辑
  2013年12月24日
摘要: 将VS创建的Windows服务项目编译生成的程序,通过命令行 “服务.exe -Service”注册为Windows服务后,就可以通过服务管理器进行管理了。问题通过服务管理器进行启动的时候,发现服务无法启动,提示错误由于程序代码是由VS的项目模板生成的,生成后直接编译为Debug版,然后通过命令行进... 阅读全文
posted @ 2013-12-24 00:28 缘生梦 阅读(6847) 评论(8) 推荐(4) 编辑
  2013年12月22日
摘要: Windows服务Debug版本注册Services.exe -regserver卸载Services.exe -unregserverWindows服务Release版本注册Services.exe -service卸载Services.exe -unregserver原理Windows服务的De... 阅读全文
posted @ 2013-12-22 21:19 缘生梦 阅读(10840) 评论(1) 推荐(5) 编辑
  2013年12月21日
摘要: 入门启动Shell在cmd中输入命令”erl”,百分号(%)表示一个注释的开始,从百分号开始到这行结束的所有文本都被看做是注释。一个完整的命令需要以一个句点和一个回车结束。退出erlang的命令是q().命令 f() 会让 shell释放它所绑定过的所有变量。即所有的变量都编程自由变量。变量所有的变量必须以大写字母开头。Eralng的变量只能被赋一次值,第二次赋值会出现匹配失败的错误。一个变量如果含有一个被赋予的值,就称为绑定变量,否则称为自由变量。一开始所有变量都是自由的。在Erlang中,=表示一个模式匹配操作。浮点数“/”永远返回浮点数,因此,4/2计算结果就是2.0000. N div 阅读全文
posted @ 2013-12-21 20:37 缘生梦 阅读(1287) 评论(0) 推荐(1) 编辑
  2013年12月16日
摘要: 创建Windows服务的项目新建项目->C++语言->ATL->ATL项目->服务(EXE)这样就创建了一个Windows服务项目。生成的解决方案包含两个项目:Services、ServicesPS 。其实主要是使用Services,VS2012下不清楚为什么生成了两个项目。注册Windows服务W... 阅读全文
posted @ 2013-12-16 23:31 缘生梦 阅读(11192) 评论(1) 推荐(0) 编辑
  2013年12月9日
摘要: /// /// Main相当于Windows服务的Start方法 主要负责初始化的工作 /// /// static void Main(string[] args) {ApplicationSession sesion = new ... 阅读全文
posted @ 2013-12-09 22:27 缘生梦 阅读(248) 评论(1) 推荐(0) 编辑
  2013年12月4日
摘要: 在gtest/gtest.h文件中添加如下代码1 #define _VARIADIC_MAX 10 阅读全文
posted @ 2013-12-04 23:46 缘生梦 阅读(1473) 评论(0) 推荐(0) 编辑
摘要: ATL中的BUG,在没有COM的服务中,使用_ATL_NO_COM_SUPPORT。并在服务中添加下面的代码#if defined(_ATL_NO_COM_SUPPORT) HRESULT PreMessageLoop(int nShowCmd) { SetServiceStatus(SERVICE_RUNNING); return ATL::CAtlServiceModuleT::PreMessageLoop(nShowCmd); }#endif 阅读全文
posted @ 2013-12-04 23:40 缘生梦 阅读(1298) 评论(2) 推荐(0) 编辑
  2012年6月23日
摘要: 虽然大家对string和StringBuilder已经非常熟悉不过了,但是相信还是有好多人不是很懂他们的区别。看过好多大牛们写的这方面的博客,受益匪浅,下面我也分享一下我的认识。简单说明 1.string是不可变的,一旦创建,就不可以修改。有人说:怎么就不可以修改了,string strTest = "hbccdf"; strTest = "缘生梦"; 这不就修改了strTest的值吗 我的意思是,一旦在内存中创建了“hbccdf”,就不可通过是strTest[n] = "m"; 这种方式来修改字符的值,而 strTest=" 阅读全文
posted @ 2012-06-23 00:40 缘生梦 阅读(2615) 评论(9) 推荐(3) 编辑