上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 49 下一页
  2011年6月14日
摘要: 在win7下,用vc2010建立了一个最简单的ATL com,但是编译成功了,注册时却失败了,提示:"warning MSB3075: 命令“regsvr32 /s "E:\Program\VC2010\testcom3\Debug\testcom3.dll"”已退出,代码为 5。请验证您是否有足够的权限来运行此命令。"很明显:这是一个权限不足的问题。同样的代码放在win XP下,可能没有任何问题,但是在win7下却出现了这种问题。因为win7对权限的管理还是比较严的。分析代码,注册dll的代码就是:_AtlModule.DllRegisterServe 阅读全文
posted @ 2011-06-14 10:43 清清飞扬 阅读(3136) 评论(0) 推荐(0)
  2011年6月8日
摘要: From: http://my.oschina.net/alphajay/blog/5774STL即 Standard Template Library (标准模板库) STL是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。 STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模版函数的方式,这相比于传统的由函 阅读全文
posted @ 2011-06-08 16:14 清清飞扬 阅读(2401) 评论(0) 推荐(0)
摘要: From: http://hi.baidu.com/huqingshuye/blog/item/c55bd12ca5fa1b5b4ec2263f.html一、什么是MFC 微软基础类(Microsoft Foundation Classes),实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎,VC++是WinOS下开发人员使用的专业C++ SDK(SDK,Standard SoftWare Develop Kit,专业软件开发平台),MFC就是挂在它之上的一个输助软件开发包,MFC作为与VC++血肉相连的部分(注意C++和VC++的区别:C++是一种程序设计语言,是一种大家都 阅读全文
posted @ 2011-06-08 15:53 清清飞扬 阅读(5973) 评论(1) 推荐(2)
摘要: /* 此程序演示了二分法查找算法(针对按从小到大排列的数组)的实现。*/#include <iostream>using namespace std;/* 功能: 实现数组的二分法查找(只算法只适合按从小到大排列的数组) 返回值:关键字在数组中的下标, 返回-1表示未找到 a[]: 要搜索的数组 len: 数组元素个数 key: 要查找的关键字*/int binSearch(int a[], int len, int key){ int i = len / 2; int ii = 0; if(len < 1) return -1; if((key > a[i]) &am 阅读全文
posted @ 2011-06-08 10:15 清清飞扬 阅读(3182) 评论(0) 推荐(0)
  2011年5月31日
摘要: 系统建立IPC通讯(如消息队列、共享内存时)必须指定一个ID值。通常情况下,该id值通过ftok函数得到。ftok原型如下:key_t ftok( char * fname, int id )fname就时你指定的文件名(该文件必须是存在而且可以访问的),id是子序号,虽然为int,但是只有8个比特被使用(0-255)。当成功执行的时候,一个key_t值将会被返回,否则 -1 被返回。 在一般的UNIX实现中,是将文件的索引节点号取出,前面加上子序号得到key_t的返回值。如指定文件的索引节点号为65538,换算成16进制为 0x010002,而你指定的ID值为38,换算成16进制为0x26. 阅读全文
posted @ 2011-05-31 21:14 清清飞扬 阅读(59181) 评论(1) 推荐(2)
摘要: 在linux或者unix环境中,errno是一个十分重要的部分。在调用的函数出现问题的时候,我们可以通过errno的值来确定出错的原因,这就会 涉及到一个问题,那就是如何保证errno在多线程或者进程中安全?我们希望在多线程或者进程中,每个线程或者进程都拥有自己独立和唯一的一个 errno,这样就能够保证不会有竞争条件的出现。一般而言,编译器会自动保证errno的安全性,但是为了妥善期间,我们希望在写makefile的时 候把_LIBC_REENTRANT宏定义,比如我们在检查<bits/errno.h>文件中发现如下的定义:# ifndef __ASSEMBLER__/* Fun 阅读全文
posted @ 2011-05-31 20:47 清清飞扬 阅读(1883) 评论(0) 推荐(0)
  2011年5月28日
摘要: 要使用共享内存,应该有如下步骤:1.开辟一块共享内存 shmget()2.允许本进程使用共某块共享内存 shmat()3.写入/读出4.禁止本进程使用这块共享内存 shmdt()5.删除这块共享内存 shmctl()或者命令行下ipcrmftok()。它有两个参数,一个是字符串,一个是字符。字符串一般用当前进程的程序名,字符一般用来标记这个标识符所标识的共享内存是这个进程所开辟的第几个共享内存。ftok()会返回一个key_t型的值,也就是计算出来的标识符的值。shmkey = ftok( "mcut" , 'a' ); // 计算标识符操作共享内存,我们用 阅读全文
posted @ 2011-05-28 15:39 清清飞扬 阅读(3841) 评论(0) 推荐(0)
摘要: 线程的数据处理 和进程相比,线程的最大优点之一是数据的共享性,各个进程共享父进程处沿袭的数据段,可以方便的获得、修改数据。但这也给多线程编程带来了许多问题。我们必须当心有多个不同的进程访问相同的变量。许多函数是不可重入的,即同时不能运行一个函数的多个拷贝(除非使用不同的数据段)。在函数中声明的静态变量常常带来问题,函数的返回值也会有问题。因为如果返回的是函数内部静态声明的空间的地址,则在一个线程调用该函数得到地址后使用该地址指向的数据时,别的线程可能调用此函数并修改了这一段数据。在进程中共享的变量必须用关键字volatile来定义,这是为了防止编译器在优化时(如gcc中使用-OX参数)改变它. 阅读全文
posted @ 2011-05-28 08:50 清清飞扬 阅读(699) 评论(0) 推荐(0)
  2011年5月27日
摘要: #include <stdio.h>#include <time.h>#define HEX2BCD(x) (((x) % 10) + ((((x) / 10) % 10) << 4)) /*20 -> 20H*/#define UINT8 unsigned char/* 功能:获取BCD时间 out: [out] 保存获取到的BCD时间,格式为:秒分时日月年(各占一字节,BCD格式)*/void getBCDTime(UINT8 *out){ time_t t; int i = 0; struct tm *tp = NULL; t = time(NU 阅读全文
posted @ 2011-05-27 15:31 清清飞扬 阅读(1253) 评论(0) 推荐(0)
  2011年5月17日
摘要: 最简单的方法就是下载一个buildtoolchain.tar.gz安装就行了,有时候就是想自己亲身体验一下安装定制过程,Linux的乐趣也在这点。从网上搜集了些资料,以备日后查阅。 如何为嵌入式开发建立交叉编译环境 < language=java type=text/java script> 梁元恩 , 软件工程师2005 年 9 月 在进行嵌入式开发之前,首先要建立一个交叉编译环境,这是一套编译器、连接器和libc库等组成的开发环境。文章通过一个具体的例子说明了这些嵌入式交叉编译开发工具的制作过程。随着消费类电子产品的大量开发和应用和Linux操作系统的不断健壮和强大,嵌入式系统 阅读全文
posted @ 2011-05-17 11:54 清清飞扬 阅读(7619) 评论(0) 推荐(0)
上一页 1 ··· 22 23 24 25 26 27 28 29 30 ··· 49 下一页