- 博客(7)
- 资源 (12)
- 收藏
- 关注
转载 临界区(Critical section)与互斥体(Mutex)的区别
1、临界区只能用于对象在同一进程里线程间的互斥访问;互斥体可以用于对象进程间或线程间的互斥访问。2、临界区是非内核对象,只在用户态进行锁操作,速度快;互斥体是内核对象,在核心态进行锁操作,速度慢。3、临界区和互斥体在Windows平台都下可用;Linux下只有互斥体可用。4、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。5、互斥量:为协调共同对一个
2012-08-28 18:05:34 1531
原创 求一个数组中重复元素出现最多值,最大的元素及出现次数,次数相同时,取最大值,优先考虑次数
#include #include #include using namespace std;void maxNumTimes(int a[], int len, int b[]){ map mapData; int count = 0; for(int i = 0; i < len; i++) { mapData[a[i]]++; } //int max time
2012-08-24 17:13:21 4542
原创 将byte数组的内容转换成BSTR类型,反之。
问题描述:之前我们有个接口类似int WINAPI ReadBiosVersion(BYTE *bios, ULONG size, char *version);这个接口是包装在dll中,是操作底层bios的。提供接口的人,提供了32bit和64bit两套dll.而我们的应用程序是32bit的,需要在64bit OS上运行,就需要调用64bit.所以我们的方案是上篇文章介绍的使用进程外的COM
2012-08-07 15:09:16 3098 1
转载 32进程调用64dll的解决方法
32位进程调用64位dll应该也可以通过这种方法解决,原因64位windows系统下安装了32位和64位两套COM系统(本人已验证) 最近做在Windows XP X64,VS2005环境下做32位程序编译为64位程序的工作,遇到了一些64位编程中可能遇到的问题:如内联汇编(解决方法改为C/C++代码),long类型的变化,最关键的遇到了64位进程需要调用32位dll的问题。由于有一些32
2012-08-02 18:36:16 4932 1
转载 如何正确使用SVN建立本地文件管理
作为一个现代的开发人员,你已经习惯了使用版本管理来管理自己的代码和文档。当我们在家里的机器上想对自己的东西做版本管理的时候你需要自己配置一个版本管理服务器,如CVS等。但是很遗憾的是,CVSNT的配置很是麻烦,而且CVS的功能实在是落伍,SVN服务器的配置也实在麻烦,VSS?老古董一边去!网络上申请一个免费的项目空间,如sf.net之类的:那你的文件就都公开了。 今天我无意中发现原来创建一个
2012-08-01 17:33:58 1734
转载 CreateFileMapping和MapViewOfFile函数
在开发软件过程里,也经常碰到进程间共享数据的需求。比如A进程创建计算数据,B进程进行显示数据的图形。这样的开发方式可以把一个大程序分开成独立的小程序,提高软件的成功率,也可以更加适合团队一起开发,加快软件的开发速度。之前讲过一种使用命名管道的方式实现,下面就来使用文件映射的方式进行共享数据。先要使用函数CreateFileMapping来创建一个想共享的文件数据句柄,然后使用MapViewOfFi
2012-08-01 13:20:46 1424
转载 进程间通信 - 命名管道实现
总结对于命名管道来说的话,简单理解的话,其实是可以将其看做是一种 Socket 的,而对于命名管道也就是那几个 API 在使用,对于一些不常用的 API ,感兴趣的也可以从 MSDN 中获取到这部分信息。对于进程间的通信的话,其实也就可以利用介绍的这四种方式来实现了,第一种是利用剪贴板实现本机进程间的通信。第二种是利用邮槽实现本机或跨网络进程间的通信。第三种是利用匿名管
2012-08-01 11:30:49 2505
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人