上一页 1 2 3 4 5 6 7 8 9 10 ··· 61 下一页
  2013年4月7日
摘要: 1、前提[cpp]view plaincopy//头文件中添加包含文件#include<Imm.h>//源文件中添加lib文件#pragmacomment(lib,"imm32.lib")2、调用在需要调用软键盘的响应中添加:[cpp]view plaincopyHIMChIMC=ImmGetContext(pWnd->m_hWnd);//接受输入的窗口句柄DWORDdwConv,dwSent;ImmGetConversionStatus(hIMC,&dwConv,&dwSent);if(dwConv&IME_CMODE_SOFTK 阅读全文
posted @ 2013-04-07 13:25 carekee 阅读(4520) 评论(0) 推荐(0)
  2013年3月22日
摘要: 应该是windows网络编程第二版里面提到过。现在整理一下。1:在IOCP中投递WSASend返回WSA_IO_PENDING的时候,表示异步投递已经成功,但是稍后发送才会完成。这其中涉及到了三个缓冲区。网卡缓冲区,TCP/IP层缓冲区,程序缓冲区。情况一:调用WSASend发送正确的时候(即立即返回,且没有错误),TCP/IP将数据从程序缓冲区中拷贝到TCP/IP层缓冲区中,然后不锁定该程序缓冲区,由上层程序自己处理。TCP/IP层缓冲区在网络合适的时候,将其数据拷贝到网卡缓冲区,进行真正的发送。情况二:调用WSASend发送错误,但是错误码是WSA_IO_PENDING的时候,表示此时TC 阅读全文
posted @ 2013-03-22 17:08 carekee 阅读(6838) 评论(0) 推荐(0)
  2013年3月21日
摘要: 使用Vs2003 C++程序链结数据库,总是提示错误IDispatch error #3149.一种可行的解决办法是改写连接字符串://创建Connection对象m_pConnection.CreateInstance("ADODB.Connection");// 设置连接字符串,必须是BSTR型或者_bstr_t类型//连接Oracle数据库字符串//_bstr_t strConnect = _T("Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=MyUsername;Pwd=M 阅读全文
posted @ 2013-03-21 10:57 carekee 阅读(6236) 评论(0) 推荐(0)
  2013年3月18日
摘要: 对于一些软件的运行需要Net Framework 3.5来支持,Windows8系统自带的是Net Framework 4.0,如果添加3.5版本可以在控制面板里通过“添加功能”来实现,然而这要连接到网络下载,网速慢的短时间内根本无法完成,下面介绍一种方法,仅需三五分钟。必备条件:Windows8原版镜像。操作方法(此过程无需联网):1.在Windows8系统下双击“Windows8原版镜像”,会自动打开(记下“盘符”)。2.假设上步打开后是“D盘”,则需要以“管理员身份”运行命令: Dism /online /enable-feature /featurename:NetFx3 /All / 阅读全文
posted @ 2013-03-18 14:14 carekee 阅读(287) 评论(0) 推荐(0)
  2013年3月13日
摘要: 一:IOCP和Epoll之间的异同。异:1:IOCP是WINDOWS系统下使用。Epoll是Linux系统下使用。2:IOCP是IO操作完毕之后,通过Get函数获得一个完成的事件通知。Epoll是当你希望进行一个IO操作时,向Epoll查询是否可读或者可写,若处于可读或可写状态后,Epoll会通过epoll_wait进行通知。3:IOCP封装了异步的消息事件的通知机制,同时封装了部分IO操作。但Epoll仅仅封装了一个异步事件的通知机制,并不负责IO读写操作。Epoll保持了事件通知和IO操作间的独立性,更加简单灵活。4: 基于上面的描述,我们可以知道Epoll不负责IO操作,所以它只告诉你当 阅读全文
posted @ 2013-03-13 17:01 carekee 阅读(546) 评论(0) 推荐(0)
  2013年2月6日
摘要: 1. TCP回射示例服务器代码View Code #include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/socket.h>#include <arpa/inet.h>#include <netinet/in.h>#define SRV_PORT 8888#define MAXLINE 4096void str_echo(int fd);int main(int argc, char **argv){ int listenfd = sock 阅读全文
posted @ 2013-02-06 13:34 carekee 阅读(796) 评论(0) 推荐(0)
摘要: page1:假设Server A上面有Process X,它有一个socket M,和另外的Server B上面的Process Y的 Socket N以TCP协议连接上了,那么,据我所知,有2种情况会出现RST包:(1)X没有close socket就退出了,然后Y继续向M send数据,A的内核就会发送RST 到 socket N;(2)X设置了SO_LINGER,其中l_onoff 非0, l_linger 为0,这样当A close socket M的时候,也会发送RST到socket N。当socket N收到了RST,select的结果为socket可读,则:(a)如果这个时候调用 阅读全文
posted @ 2013-02-06 13:30 carekee 阅读(12076) 评论(2) 推荐(1)
  2013年2月5日
摘要: socket上的read write操作不同与一般的文件IO操作,socket上的用read write读写的字节数可能比要求的少,但这并不是错误,原因是socket的缓冲区可能已经到达了极限。此时所需要的就是再次调用read write以写入或输出剩余的字符。这种情况下在socket中很常见,但在写字节流socket时只能在socket非阻塞的情况下才会出现,然而为预防实现万一返回不足的字符数值,我们总是调用writen和readn函数,而不是read和write.下面就是readn、writen函数源码:ssize_t /* Read "n" bytes from a 阅读全文
posted @ 2013-02-05 17:57 carekee 阅读(1719) 评论(0) 推荐(0)
  2012年12月25日
摘要: 软件介绍RedHatLinux是目前世界上使用最多的Linux寒作系统。因为它具备最好的图形界面,无论是安装、配置还是使用都十分方便,而且运行稳定,因此不论是新手还是老玩家都对它有很高的评价。现在,RedHatLinux又出了9.0新版本,在原有的基础上又有了很大的进步。它完善了图形界面,增强了硬件的兼容性,安装起来更加得心应手,尤其增强了多媒体方面的能力——新版本的XFree4.0.1使你能够在Linux下播放多媒体文件。它还采用了OpenSSL128位加密技术,使你的网络通信更加安全;最新的内核;提供了USB接口的鼠标和键盘的支持;提供了更加容易配置和管理的图形桌面以及图形界面的内核调整和 阅读全文
posted @ 2012-12-25 19:57 carekee 阅读(317) 评论(0) 推荐(0)
  2012年12月18日
摘要: 1 typedef struct { volatile int counter; } atomic_t; ----- volatile意思是不要对其进行优化,这里如果不优化的话就会被汇编成直接访问内存地址,而不是操作寄存器。2 #define automic_set(v, i) (((v)->counter) = (i)) ----- 会被汇编成一条访问内存的指令。3 Atomic_add(int i, atomic_t *v)static __inline__ void atomic_add(int i, atomic_t *v){__asm__ __volatile__(LOCK & 阅读全文
posted @ 2012-12-18 14:48 carekee 阅读(959) 评论(0) 推荐(0)
摘要: 提到并行计算通常都会想到加锁,事实却并非如此,大多数并发是不需要加锁的。比如在不同电脑上运行的代码编辑器,两者并发运行不需要加锁。在一台电脑上同时运行的媒体播放放器和代码编辑器,两者并发运行不需要加锁(当然系统调用和进程调度是要加锁的)。在同一个进程中运行多个线程,如果各自处理独立的事情也不需要加锁(当然系统调用、进程调度和内存分配是要加锁的)。在以上这些情况里,各个并发实体之间没有共享数据,所以虽然并发运行但不需要加锁。多线程并发运行时,虽然有共享数据,如果所有线程只是读取共享数据而不修改它,也是不用加锁的,比如代码段就是共享的“数据”,每个线程都会读取,但是不用加锁。排除所有这些情况,多线 阅读全文
posted @ 2012-12-18 14:47 carekee 阅读(2048) 评论(0) 推荐(0)
  2012年12月13日
摘要: //diskid32.h// for displaying the details of hard drives in a command window// 06/11/00 Lynn McGuire written with many contributions from others,// IDE drives only under Windows NT/2K and 9X,// maybe SCSI drives later// 11/20/03 Lynn McGuire added ReadPhysicalDriveInNTWithZeroRights// 10/26/05 Lynn 阅读全文
posted @ 2012-12-13 11:29 carekee 阅读(3679) 评论(0) 推荐(0)
  2012年12月12日
摘要: 在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK)从字面上看, 意思是:EAGAIN: 再试一次,EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被block,perror输出: Resource temporarily unavailable总结:这个错误表示资源暂时不够,能read时,读缓冲区没有数据,或者write时,写缓冲区满了。遇到这种情况,如果是阻塞socket,read/write就要阻塞掉。而如果是非阻塞socket,read/write立即返回-1, 同时err 阅读全文
posted @ 2012-12-12 14:40 carekee 阅读(302) 评论(0) 推荐(0)
摘要: 1.旋转 1 //旋转 2 int size = sqrt(p_img->width/2* p_img->width/2+ p_img->height/2* p_img->height/2); 3 IplImage* dst = cvCreateImage(cvSize(size*2, size*2), IPL_DEPTH_8U, 3); 4 RgbImage spin(dst); 5 6 int angle =290; //旋转角度 7 for(int i =0; i < p_img->height; i++) { 8... 阅读全文
posted @ 2012-12-12 13:29 carekee 阅读(564) 评论(0) 推荐(0)
摘要: template<class T> class Image{ private: IlpImage *imgp; public: Image(IplImage* img = 0) { imgp = img; } inline T* operator[](const int rowIndx) { return( (T*)(imgp ->imageData + rowIndx * imgp ->widthStep)); }};typedef struct { unsigned char b, g, r;}RgbPixel;typedef struct { float b, g 阅读全文
posted @ 2012-12-12 13:28 carekee 阅读(544) 评论(0) 推荐(0)
  2012年11月26日
摘要: 前言:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->今天在群里有人问起了我一个比较远古的问题:带线的无限级下拉树列表他运行不起来。最关键的又扯上了CYQ.Data 框架,让我一时觉得比较悬,因为文章是08年时写的,而框架最今年才发力完善的,所以两者应该是没啥联系的,不过这一问也好,给了我一个写此文章的机会。ps:他把示例的其它代码当成是CYQ.Data 框架里的代码。本文将对之前的代码进行小小的简化,并为之建立一个完整的应用示例,以下为正式 阅读全文
posted @ 2012-11-26 11:04 carekee 阅读(311) 评论(0) 推荐(0)
摘要: aspx:<table> <tr> <td> <asp:DropDownList ID="ddlMultiColor" OnSelectedIndexChanged="ddlMultiColor_OnSelectedIndexChanged" runat="server" AutoPostBack="true"> </asp:DropDownList> </td> <td> <div id="msgColor&quo 阅读全文
posted @ 2012-11-26 09:42 carekee 阅读(284) 评论(0) 推荐(0)
  2012年11月9日
摘要: /*这是一个使用互斥锁实现两个线程之间同步实例,一个线程负责从标准输入设备中读取数据,而另一个线程则负责将读入的数据输出到标准输出设备上*/#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <pthread.h>#include <semaphore.h>#include <string.h>void *thread_function(void *arg);pthread_mutex_t work_mutex; //全局互斥锁对象,首先应该定义 阅读全文
posted @ 2012-11-09 10:09 carekee 阅读(2319) 评论(0) 推荐(0)
  2012年11月8日
摘要: 引子无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到 make或 make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和 makefile工具就可以轻而易举的理顺各个源文件之间纷繁复杂的相互关系。但是如果通过查阅make的帮助文档来手工编写Makefile,对任何程序员都是一场挑战。幸而有GNU 提供的Autoconf及Automake这两套工具使得编写makefile不再是一个难题。本文将介绍如何利用 GNU Aut 阅读全文
posted @ 2012-11-08 17:36 carekee 阅读(249) 评论(0) 推荐(0)
摘要: 使用定时器的目的无非是为了周期性的执行某一任务,或者是到了一个指定时间去执行某一个任务。要达到这一目的,一般有两个常见的比较有效的方法。一个是用linux内部的三个定时器,另一个是用sleep, usleep函数让进程睡眠一段时间,其实,还有一个方法,那就是用gettimeofday, difftime等自己来计算时间间隔,然后时间到了就执行某一任务,但是这种方法效率低,所以不常用。首先来看看linux操作系统为每一个进程提供的3个内部计时器。ITIMER_REAL: 给一个指定的时间间隔,按照实际的时间来减少这个计数,当时间间隔为0的时候发出SIGALRM信号ITIMER_VIRTUAL: 阅读全文
posted @ 2012-11-08 17:23 carekee 阅读(234) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 10 ··· 61 下一页