
Windows核心编程
Car12
嵌入式开发,爱好者
展开
-
MFC 获取其他窗口的Edit文本和单击Button
auto hmain = ::FindWindow(NULL, L"MFCApplication2"); if (hmain) { //获取窗口句柄 CRect rect; ::GetWindowRect(hmain, rect); CString str; CPoint user_pt; //将user_pt点定位到用户名框内 user_pt.x = rect.left + 109+10; user_pt.y = rect.top + 148+10.原创 2021-07-06 10:30:17 · 854 阅读 · 0 评论 -
TCP超时设置的客户端重发5次
代码bool AsioAsyncTcpClient::SendDataTcp(string msg){ bool re = false; int sendcnt = 5; int nNetTimeout=500;//ms uint8_t readbuf[1024]; SOCKADDR_IN addrSrv; addrSrv.sin_family = AF_INET; a...原创 2020-01-04 17:45:07 · 847 阅读 · 0 评论 -
Windows线程同步--关键段和旋转锁
关键段关键段(Critical Section)是一小段代码,它在执行之前需要独占对一些共享资源的访问权。这种方式可以让多行代码以“原子方式”对资源进行操控。这里的原子方式,指的是代码知道除了当前线程之外,没有其他任何线程会同时访问该资源。当然,系统仍然可以暂停当前线程去调度其他线程。但是,在当前线程离开关键段之前,系统是不会去调度任何想要访问同一资源的其他线程的。下面的代码展示了Critical...转载 2018-05-06 09:16:58 · 604 阅读 · 0 评论 -
Slim读写锁
Slim读写锁简称SRWLock,它的目的和临界区相同,对一个资源进行保护,不让其他线程访问。但是不同的是SRWLock允许我们区分哪些线程是读取共享资源的值,哪些线程是修改共享资源的值。所有读线程在同一时刻可以访问共享资源,因为这些线程不会破坏共享资源,只有当写线程要访问共享资源时,才需要进行同步。写线程应当独占式访问资源,其他任何线程都不允许访问资源。这就是SRWLock提供的全部功能。所以S...转载 2018-05-12 16:24:34 · 213 阅读 · 0 评论 -
Windows核心编程条件变量
当想让写入者线程和都去这线程以独占的方式或共享的方式访问一个资源的时候,可以使用SRWLock。在这些情况下,如果都去这没有数据可以读取,那么它应该将锁释放并等待,直到写入者线程产生了新的数据为止。如果用来接收写入者线程的数据结构已满,那么写入者同样应该释放SRWLock并进入睡眠状态,直到读取这线程把数据结构清空为止。我们希望线程以原子的方式把锁释放并将自己阻塞,直到某一个条件成立为止。要实现...原创 2018-05-12 17:27:16 · 1339 阅读 · 0 评论 -
Windows核心编程之线程池在回调函数和定时调用(定时器)
#include"stdafx.h"#include<windows.h> #include<iostream>using namespace std;void CALLBACK Work(PTP_CALLBACK_INSTANCE instance,PVOID context,PTP_WORK work){ int *p=static_cast<int...原创 2018-05-14 21:46:27 · 554 阅读 · 0 评论