DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

2019年1月10日

摘要: __stdcall被这个关键字修饰的函数,其参数都是从右向左通过堆栈传递的(__fastcall 的前面部分由ecx,edx传), 函数调用在返回前要由被调用者清理堆栈。这个关键字主要见于Microsoft Visual C、C++。GNU的C、C++是另外一种修饰方式:__attribute__( 阅读全文
posted @ 2019-01-10 20:23 DoubleLi 阅读(846) 评论(0) 推荐(0)

摘要: 今天面试,做了两道面试题,有道题,也是非常的有趣,下面简单的说说,原题是:"有哪些方法可以实现单实例的应用程序?选择一种方法阐述它到底实现原理,流程及优缺点? 然后他们给的答案是:信号量,共享内存,命名管道,绑定端口等。 我顿时感觉整个人都不好了,首先想到的是微软操作系统的单实例的应用程序,再转到c 阅读全文
posted @ 2019-01-10 16:33 DoubleLi 阅读(715) 评论(0) 推荐(0)

摘要: 什么是共享内存 共享内存是最快速的进程间通信机制。操作系统在几个进程的地址空间上映射一段内存,然后这几个进程可以在不需要调用操作系统函数的情况下在那段内存上进行读/写操作。但是,在进程读写共享内存时,我们需要一些同步机制。 考虑一下服务端进程使用网络机制在同一台机器上发送一个HTML文件至客户端将会 阅读全文
posted @ 2019-01-10 11:18 DoubleLi 阅读(2460) 评论(0) 推荐(0)

摘要: 场景 Windows进程单实例运行,如果有进程没有退出,继续等待,直到进程完全退出,才会进入下一个实例 HANDLE pHandle = NULL; do { pHandle = ::CreateMutex(NULL, FALSE, "Global\\fengyuzaitu.blog.51cto.c 阅读全文
posted @ 2019-01-10 11:02 DoubleLi 阅读(1322) 评论(0) 推荐(0)

摘要: 概述 Boost.Process提供了一个灵活的C++ 进程管理框架。它允许C++ developer可以像Java和.Net程序developer那样管理进程。它还提供了管理当前执行进程上下文、创建子进程、用C++ 流和异步I/O进行通信的能力。该库以完全透明的方式将所有进程管理的抽象细节呈现给使 阅读全文
posted @ 2019-01-10 10:59 DoubleLi 阅读(7991) 评论(0) 推荐(1)

摘要: 本文介绍三种“实现单实例应用程序”的方法,保障每次只能运行一个该类型的应用程序。 一、共享内存 在main函数中添加如下代码: // 使用共享内存的方式来保证只运行一个实例 QString strKey = "MyApplication"; QSharedMemory sharedMemory; s 阅读全文
posted @ 2019-01-10 10:55 DoubleLi 阅读(759) 评论(0) 推荐(0)

摘要: 一介绍 通过编写一个QSingleApplication类,来实现Qt程序的单例化,原文的作者是在Windows Vista + Qt4.4 下实现的,不过应用在其他平台上是没问题的。(本文是我在http://www.qtcentre.org/wiki/index.php?title=SingleA 阅读全文
posted @ 2019-01-10 10:40 DoubleLi 阅读(1958) 评论(0) 推荐(0)

摘要: 在实际应用中,我们经常需要让应用程序只有一个实例,再打开新的文档或者页面时,只是替换现在的窗口或者新打开一个标签,而不是重新启动一次应用程序。Qt中是否可以做到这样呢,答案是肯定的,因为Qt本身可以直接调用系统API,肯定可以做到,但是我们希望找到一个跨平台的通用的解决方案。 这就要用到Qt的QLo 阅读全文
posted @ 2019-01-10 10:39 DoubleLi 阅读(1659) 评论(0) 推荐(0)