suncode

  博客园 :: 首页 :: 新随笔 :: :: :: 管理 ::

2011年4月19日

摘要: 进程由进程对象,地址空间两部分构成;线程由线程的内核对象、线程栈构成,进程从来不执行任何东西,它只是线程依存的地方,线程在进程的地址控件中执行代码,并在进程的地址空间中对数据进行操作。主线程的入口函数main wmain Winmain wWinmain辅助线程DWORD WINAPI ThreadFunc(PVOID pvParam){ DWORD dwResult = 0; ... return(dwResult );}CreateThread 与 _beginthreadexCreateThread :操作系统执行的创建线程函数。_beginthreadex:CRT(C++运行时库) 内 阅读全文
posted @ 2011-04-19 11:27 suncode 阅读(238) 评论(0) 推荐(0)

2011年3月29日

摘要: 意图:保证一个类仅有一个实例,并提供一个访问的全局访问点--------------------singleton.h-----------------------View Code #ifndef SINGLETON_H#define SINGLETON_Hclass singleton{public: static singleton* instance();protected: singleton();private: static singleton* _instance;};#endif //SINGLETON_H---------------------singleton.cpp- 阅读全文
posted @ 2011-03-29 14:46 suncode 阅读(339) 评论(0) 推荐(0)

摘要: 今天一朋友问了一问题想到了二进制的解决方法,于是上网搜了下资料,觉得有用,就拿来主意,贴下以备后用。char *_itoa( int value, char *string, int radix );第一个参数是要转换的数,第二个参数用于存放结果,第三个参数就是指进位制了。用法举例:char tmp[32];itoa(985,tmp,16);这就是把985转换为16进制的字符串。如果你一定要自己写,你的方法并不好。你可以这样来看问题,一个整数占用32bit,8进制其实就是要求的3bit为一分组,而16进制则是4bit为一分组。你完全可以利用C++的位操作运算来处理,这样会更快且准确。以16进制 阅读全文
posted @ 2011-03-29 14:24 suncode 阅读(376) 评论(0) 推荐(0)

2011年3月28日

摘要: 要实现这个目标,非stringstream类莫属。这个类在<sstream>头文件中定义,<sstream>库定义了三种类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。另外,每个类都有一个对应的宽字符集版本。string到int类型的转换<sstream>使用string对象来代替字符数组。这样可以避免缓冲区溢出的危险。而且,传入参数和目标对象的类型被自动推导出来,即使使用了不正确的格式化符也没有危险。std::stringstream stream;string result= 阅读全文
posted @ 2011-03-28 10:01 suncode 阅读(4494) 评论(0) 推荐(0)

2011年3月18日

摘要: WM_COPYDATA是一个非常特殊的消息,此消息可以携带一个较大的消息参数,而其他消息都只能写到两个固定大小的参数(WPARM LPARAM)发送WM_COPYDATA消息时wParam参数应该赋值为发送此消息的窗口,lParam指向一个 COPYDATASTRUCT结构类型的变量typedef struct COPYDATASTRUCT{ ULONG_PTR dwData; //可以是任意值 DWORD cb_data; //指定lpData内存区域的字节数 PVOID lpData; //发送给目录窗口所在进程的数据}COPYDATASTRUCT, *PCOPYDATASTRUCT;/* 阅读全文
posted @ 2011-03-18 17:07 suncode 阅读(4105) 评论(0) 推荐(0)

2011年3月13日

摘要: 基本需求:eclipse、python解析器下载eclipse中开发python的插件PyDev(org.python.pydev.feature-1.6.1.2010080312.zip)org.python.pydev.feature-1.6.1.2010080312.zip解压后放入eclipse目录下对应的文件夹中,启动eclpse window->presences Pydec->interpreter-Python 设置python.exe对应的路径Appy->OK.设置好后File->New->Other 弹出窗口中Pydev->pydev P 阅读全文
posted @ 2011-03-13 10:07 suncode 阅读(993) 评论(0) 推荐(0)

2011年3月10日

摘要: 线程同步机制为线程协同工作而设计,windows系统中有多种机制可以用于线程同步,最常用的有下面几种:互斥对象(Mutex)时间对象(Event)信号量(Semaphore)临界区(critical section)可等待计时器(waitable Timer)同步过程中两个重要的概念是同步对象和等待函数:同步对象:线程同步过程中需要先定义一个同步对象,具有标志的(signaled)和未标志的(nonsignaled),线程根据是否已经完成操作将同步对象视之为 标志的或未标志的。等待函数:专门用于等待同步对象状态改变,线程调用等待函数后会暂停,直到同步对象的状态改变后,等待函数才会返回,线程继续 阅读全文
posted @ 2011-03-10 17:26 suncode 阅读(193) 评论(0) 推荐(0)

摘要: 管道(Pipe)是一种用于进程间共享数据的机制,实质是共享一段内存,windows系统为这段共享内存设计采用数据流I/O的方式访问。由一个读一个写,类似于一个管道两端。管道分为命名管道和匿名管道。匿名管道只能在父子进程间进行通信,不能在网络间通信,而数据传输是单向的。命名管道可以在任意进程间通信,通信是双向的。创建命名管道 CreateNamedPipeHANDLE WINAPI CreateNamedPipe( LPCTSTR lpName, // 管道名称, 命名方式:\\ServerName\pipe\PipeName 或者 \\.\pipe\PipName DWORD dwOpenMo 阅读全文
posted @ 2011-03-10 17:01 suncode 阅读(1762) 评论(0) 推荐(0)

2011年3月8日

摘要: 邮槽通信分为服务端和客户端,邮槽有服务端进行创建,创建时指定邮槽的名字,创建后获得邮槽的句柄,客户端可以通过句柄打开邮槽,获得句柄后可以向邮槽写入消息。邮槽服务是单向的,只有服务端才能从邮槽中读取消息,客户端只能写入,消息是先进先出的,邮槽通信的数据可以是任意格式,但一条消息不能大于424字节,数据通过网络传播时使用的是数据报协议(UDP),网络通信时客户端必须知道服务端的主机名或域名。邮槽命名: 本 机: \\.\mailslot\[oath\]name 例:\\.\mailslot\win\suncode 不同主机:\\DomainName\mailslot\[path\]name \\C 阅读全文
posted @ 2011-03-08 18:39 suncode 阅读(330) 评论(0) 推荐(0)

摘要: 进程的地址空间是私有的,出于安全行的目的,如果一个进程不具有特殊的权限,是无法访问另外一个进程的内存空间的。windows 系统下,在进程间通信或共享数据的方式如下:邮槽:邮槽是最为简单的进程间数据共享方式,一个进程创建并拥有一个邮槽,其他进程都可以打开这个邮槽并向其发送消息。管道:实质是一种共享内存,有一个进程创建,其他进程连接,并可进行双向的通信。剪贴板:剪贴板是重要的进程间数据共享方式,所有的进程都可以设置和修改剪贴板,也可以从剪贴板获取内容。消息:具体指WM_COPYDATA。消息具有参数wParam、lParam,两者最多是32位的,但是WM_COPYDATA消息参数不受wParam 阅读全文
posted @ 2011-03-08 17:27 suncode 阅读(188) 评论(0) 推荐(0)