摘要:1. 问题 当在console中调用API ShellExecuteEx打开"test.iqy"文件时,发现excel会hang住,console退出后excel才会响应,但直接双击"test.iqy"是没有问题的,有意思的是这个情况只有在xp发生,在win7上没有这个问题。 2. 重现步骤 重现环
阅读全文
随笔分类 - Windows
摘要:引用原文地址 : https://msdn.microsoft.com/en-us/library/x98tx3cf.aspx 1. 在program中严格按下面顺序include 2. 必须是Debug版的build Q : LiteServer遍Debug可能会遇到一些问题 A : 可以用来验证
阅读全文
摘要:项目简介和code见《同步异步和阻塞2-测试小项目》 1. 实现 1> 异步线程IO处理 unsigned CAsyncIO::ThreadWork() { int nRet = IO(); //map is better than array at here, but it need STL unsigned uTid = GetCurrentThreadId(); ...
阅读全文
摘要:项目简介和code见《同步异步和阻塞2-测试小项目》 1. 实现 由于IO是阻塞的,所以要实现轮询IO的结果,需要将IO放入线程中处理,IO的处理结果作为给线程的exit code返回。这里用“CBaseThread”简单的将线程处理函数封装到类中 在OnStart()中,先依次启动2个线程处理IO
阅读全文
摘要:项目简介和code见《同步异步和阻塞2-测试小项目》 1. 实现 同步的实现很简单,依次call2次 IO() 函数,此时OnStart()由于是在主线程中调用的,IO()函数会阻塞主线程,当IO()完成后然后将结果通知给UI后立即返回。 当然,由于IO是阻塞的,所以所谓的IO处理进度是无法实现的,
阅读全文
摘要:在《同步异步和阻塞1》中,分别说明了3种同步异步和阻塞非阻塞的优缺点,从这个blog开始,我们用一个小项目来进一步深入的看看他们的优缺点。 1. 项目简介 code : sync_io 编译 : C++, VS2010 项目有2个IO,按下”Start”按钮后就会开始按照不同的IO处理方法调用IO,
阅读全文
摘要:同步异步和阻塞是个有关联,但有有区别的东西。很多时候会从直觉上认为 : 同步 = 阻塞, 异步 = 非阻塞。 但实际上他们是完全描述的不同的东西: 同步异步是从request –> Receive Result这个过程的不同来讲的。 而阻塞是指在等待Request结果时,线程是否会挂起。 对于一个IO过程,可能是同步异步中的一种,同时也必然是阻塞或非阻塞。他们正交的结果共有4种: 1. 同步...
阅读全文
摘要:1. ASCII码 1> ASCII码不包括我们输入法中的"特殊字符"和"数学字符"等,他们都属于扩展ASCII 字符 2. GBK编码 GBK实际上是ASCII的中文扩展编码,其规则是: 1> 如果第一个字节的大于127(0x7F, 0111 1111,即最高位为0),则表示从这个字节开始的2个字节是表示一个汉字,否则,则是一个英文ASCII码 2> GBK是兼容ASCII的 ...
阅读全文
摘要:1、现象在一个XP 64位机子上从IE下载一个exe文件后,双击竟然无任何反应,以为文件有问题,但多次尝试后仍是如此,但打开cmd通过命令行启动是正常,双击该机子上其他exe文件也都能启动,但从IE上下载的就是不行。2、测试2.1 是否文件有问题?我在另一个机子上也下载了同样的文件,但双击启动正常2...
阅读全文
摘要:1、Codeint Work(){ while (m_lInterlockedData < 10) { InterlockedIncrement(&m_lInterlockedData); Sleep(100); } printf("CInterlocked::Work end\n"); ...
阅读全文