- 博客(21)
- 资源 (4)
- 收藏
- 关注
转载 使用PostThreadMessage在Win32线程间传递消息
PostThreadMessage的原型是这样的BOOL PostThreadMessage( DWORD idThread, UINT Msg, WPARAM wParam, LPARAM lParam);PostThreadMessage可以用于线程之间的异步通讯,因为它不用等待调用者返回,这也许是线程通讯中最简单的一种方法了。但是
2013-12-23 21:59:26
780
转载 基于MFC的插件应用程序设计与实现
基于MFC的插件应用程序设计与实现作者:丰晋军 许铁山 收录:中华论文网(www.zclw.net).............................................................................................................................
2013-12-19 11:15:29
1772
转载 C++ 线程的创建,挂起,唤醒,终止
例子:线程代码:DWORD __stdcall ThreadProc(LPVOID lpParameter) { CMultiThreadDlg * pdlg = (CMultiThreadDlg *)lpParameter; pdlg->m_ProCtrl.SetRange32(0,99999); for (int i = 0; i m_ProCtrl.SetPos(i); } retu
2013-12-19 11:13:03
3832
转载 C++线程暂停
多线程中,线程需要暂停的原因多种多样,基本分为两大类,1是等待数据,2是系统资源紧张,停止计算以把资源让给其他线程.一般初学者会使用的方法就是使用SuspendThread和ResumeThread这两个API或者他们的包装函数进行操作,许多教材上都是这么说的,但这么作会带来及其严重的问题。这两个API的问题是无法确定函数被暂停的位置,这是一个足以让任何多线程程序崩溃的问题。想象一种情况,A线
2013-12-19 11:11:43
8715
转载 控制多线程,开启、暂停、继续、终止(实例)
控制多线程,开启、暂停、继续、终止(实例) 我们这些文盲以前一听到多线程这么几个字,以为非常的高级,难搞!!昨天翻阅了一下MSDN,发现,其实也没那么难,关键在于全面的理解,也许是用多了API了,慢慢的会看懂了一些!!! 我总结了几个易于理解的出来,一起共享! 我们先不讲如何使用线程过程中的参
2013-12-19 11:10:11
14664
原创 VC++判断DEBUG状态——函数
BOOL isDebug(){#ifdef _DEBUG return TRUE;#else return FALSE;#endif}
2013-12-08 01:40:54
1244
原创 VC++编程中判断char类型数组的长度
在VC++编程中经常需要判断char类型数组的长度,以下代码可供参考。windows系统下可以使用_mbslen函数C/C++ code?123456789#include #include int main(void)
2013-12-08 00:06:51
6771
转载 PathFindFileName函数,由文件路径获得文件名
标题: PathFindFileName函数,由文件路径获得文件名作者: Demon链接: http://demon.tw/programming/pathfindfilename.html版权: 本博客的所有文章,都遵守“署名-非商业性使用-相同方式共享 2.5 中国大陆”协议条款。PathFindFileName函数的作用是返回路径中的文件名。 [cpp
2013-12-04 19:54:45
1318
转载 【MSDN】由文件路径获得文件名--PathFindFileName()函数
今天偶然翻看MFC源代码,发现了一个函数PathFindFileName(),这个函数的作用就是用来获取路径中的文件名的。下面是MSDN的文档。LPTSTR PathFindFileName( LPCTSTR pPath ); Searches a path for a file name.Returns a pointer to the address
2013-12-04 19:50:48
5089
转载 DragAcceptFiles 拖放文件到多文档框架上
以多文档为例:1.在应用程序类App的InitInstance()函数后面,添加以下代码:1m_pMainWnd->DragAcceptFiles(TRUE); 2.响应主框架类CMainFrame的WM_DROPFILES消息,添加如下代码:01020304050607
2013-12-04 19:44:19
851
转载 apLib的使用
标 题: 【讨论】apLib的使用作 者: 小驹时 间: 2011-03-25,20:30:05链 接: http://bbs.pediy.com/showthread.php?t=131361看了这个使用apLib的帖子,很有感触http://bbs.pediy.com/showthread.php?t=94815,把几个常用的apLib的函数整理了一下,高手飘过,基础的
2013-12-02 14:21:41
1690
转载 VC DLL远程进程注入
刚刚调好的DLL远程进程注入代码 备份一下void CInjectProcessDlg::OnBtnInject() {// TODO: Add your control notification handler code hereHWND hWnd; //保存查找的窗口句柄DWORD dwProcessID; //保存进程IDHANDLE hProces
2013-12-02 11:02:59
1550
转载 代码注入的三种方法
目录Windows 钩子CreateRemoteThread 和 LoadLibrary 技术――进程间通信CreateRemoteThread 和 WriteProcessMemory 技术――如何用该技术子类化远程控件――何时使用 CreateRemoteThread 和 WriteProcessMemory 技术结束语附录A
2013-12-02 11:01:11
14757
转载 #define用法以及#define和typedef区别
#define用法以及#define和typedef区别1.简单的define定义#define MAXTIME 10002.define的“函数定义”define可以像函数那样接受一些参数,如下#define max(x,y) (x)>(y)?(x):(y);因为这个“函数”没有类型检查,就好像一个函数模板似的,没有模板那么安全就是了。但是这样做的话存在隐患,例子如下
2013-11-29 11:06:12
658
转载 直接运行内存中的程序
【转贴】直接运行内存中的程序 哈哈,想不到有人居然把这种代码也搞出来了。 Windows的PE加载器在启动程序的时候,会将磁盘上的文件加载到内存,然后做很多操作,如函数导入表重定位,变量预处理之类的。这位仁兄等于是自己写了一个PE加载器。直接将内存中的程序启动。记得以前的“红色代码”病毒也有相同的特性。 直接启动内存中的程序相当于加了一个壳,可以把程序加密保存,
2013-11-28 13:17:20
1117
转载 WaitForMultipleObject与MsgWaitForMultipleObjects用法
用户模式的线程同步机制效率高,如果需要考虑线程同步问题,应该首先考虑用户模式的线程同步方法。 但是,用户模式的线程同步有限制,对于多个进程之间的线程同步,用户模式的线程同步方法无能为力。这时,只能考虑使用内核模式。用户模式与内核模式线程同步机制比较: 用户模式内核模式优点线程同步机制速度快 支持多个进程之间的线程同步,防止
2013-11-27 11:26:01
1104
转载 结构体中数组下标为0
这是个广泛使用的常见技巧,常用来构成缓冲区。比起指针,用空数组有这样的优势: 1.不需要初始化,数组名直接就是所在的偏移 2.不占任何空间,指针需要占用int长度空间,空数组不占任何空间。 “这个数组不占用任何内存”,意味着这样的结构节省空间;“该数组的内存地址就和他后面的元素的地址相同”,意味着无需初始化,数组名就是后面元素的地址,直接就能当做指针使用。 这样
2013-11-27 11:23:56
3617
转载 Windows消息调度机制和线程同步控制
windows的所谓事件驱动核心是消息! 消息分为进队消息消息和非进队消息。所谓进队消息就是windows将消息发送到每个线程所专有的队列中,然后由程序自主处理,这种消息基本上是由用户输入产生(wm_keydown,wm_keyup,wm_char,wm_mouse**,以及wm_paint,wm_timer,wm_quit)或者是调用postmessage,postthreadme
2013-11-21 11:30:13
1247
转载 #define总结 (网上资料汇集)
1. 定义简单的常数:定义常量,便于修改(切不可在后面加上分号!) #define N 1000 等效于 const int N = 1000; 但略有不同,define只是简单替换,而不是作为一个量来使用.2. 定义简单的函数:注意多使用括号define可以像函数那样接受一些参数,如下:#define max(x,y) (x)>(y)?(x):(y
2013-11-20 11:32:08
759
转载 安全测试工具
应用安全web安全AppScan Burp Suite ComeAssistant DirBuster DWRDigger Fidder HttpPutScaner Mantra WebScarab WSDigger反编译Cavaj Java Decomp
2013-11-20 11:30:53
1195
转载 我对CONTAINING_RECORD宏的详细解释
宏CONTAINING_RECORD的用处其实还是相当大的, 而且很是方便, 它的主要作用是: 根据结构体中的某成员的指针来推算出该结构体的指针! 下面从一个简单的例子开始说起: 我们定义一个结构体, 同时类型化:typedef struct{ int a; int b; int c;}ss; 这是一个很简单的结构体, 没什么特
2013-11-20 11:28:40
712
代码注入的三种方法
2013-12-02
SuperScan好吧凑字
2013-08-24
ASEF-Blog_ASEF-Blog(4).pdf
2012-09-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人