2012年8月8日
摘要: 如何用vc编写dll文件动态连接库最大的特点就是能节省磁盘空间.当多个进程共享同一个DLL的时候,内存中只有一个DLL的代码.通过映射来使各个进程得以调用.1.用VC建立一个WIN32 DLL我们利用VC编写DLL有几种方法.如果用VC建立一个WIN32 DLL 工程.那这个工程就应该只导出C++的类或全局变量.和全局函数.方法就是在CPP文件中编写你的代码,为每个需要导出的元素进行导出办法是增加如下语句:_declspec(dllexport)你当然可以把它定义成宏例如,如果是一个类STUDENT需要导出,那么声明时应该是这样写 class _declspec{dllexport) stud 阅读全文
posted @ 2012-08-08 15:50 kkmm 阅读(3690) 评论(1) 推荐(0) 编辑
摘要: 本文是自己总结的。首先,linux下的信号量,分为很多种。首先分为内核信号量和用户态信号量。用户态信号量又分为posix信号量和system v信号量。(system v比较复杂,头文件为#include <sys/sem.h>;posix信号量比较简单,#include <semaphore.h>)然后posix信号量又分为有名和无名信号量。这里我们讨论有名信号量:sem_open();sem_wait(); //如果信号量来了(要么是sem_open()中的value大于等于1,要么别的进程sem_post()了)信号量-1,并且可以继续执行(也就是进入mutex区 阅读全文
posted @ 2012-08-08 14:51 kkmm 阅读(2235) 评论(0) 推荐(0) 编辑
摘要: 几个比较有用有趣的predefine预定义的宏,用于跨平台,记录一下,学习#include <unistd.h>#if defined __GNUC__#define a "__GNUC__ defined"#else#define a "__GNUC__ not defined"#endif#if defined _MSC_VER#define b "_MSC_VER defined"#else#define b "_MSC_VER not defined"#endif#ifdef _POSIX_SE 阅读全文
posted @ 2012-08-08 14:11 kkmm 阅读(736) 评论(0) 推荐(0) 编辑
摘要: 今日做一面试题目,写一平方根squareroot函数,函数接口为:unsigned int squareroot(unsigned int input); //不考虑float情况经过思考,用位移的方法,一个整数32bits,那么平方根最多16bits,那么对于这16个bits,从最大权重的bit开始,看是置1还是置0,一步一步往后走,到最后一个bit被置完之后,平方根也就求出了。那么如何判断后16bits中,某一个特定的bit是0还是1呢?这样判断,因为从most significant到least significant,那么首先将当前需要判断的bit置1,然后平方,看比input是... 阅读全文
posted @ 2012-08-08 11:20 kkmm 阅读(1887) 评论(0) 推荐(0) 编辑