分类 ‘Windows’ 中的文章

如何写 执行耗时任务的、可随时立即退出的函数 呢?

如题。

稍微解释下,因为有可能有人会误会:放新线程里面去不就可以了?这没有解决问题。如此的话,你那个线程函数怎么写?或者线程函数里调用的某个任务函数怎么写?总之,多线程虽然总是出现在这些问题的解决方案中,但不是多线程解决了这个问题。嗯……不知道说清楚了没?

目前我心里的答案只有这一种模式:

bool[......]

更多…

也谈谈GUI框架

事情的缘起是,耐不住寂寞,准备开始造GUI的轮子。

GUI框架,要做的事情我想大概是这么几步:

  1. 实现回调函数的成员化。
  2. 实现方便程度可接受的消息映射。
  3. 确定上述核心部件的使用方式。
  4. 制造大量的控件。

前三步要走的比较小心,第四步是体力劳动。

第一步,Windows下可参考的是MFC方式、WT[......]

更多…

想讨论个话题,关于DLL的使用方式

前言:
DLL 是个很久远的文件格式,以至于它只支持导出函数(请忽略 .net 的 DLL)。至于导出 class,也是由于编译系统的支持才勉勉强强能进行,只能静态加载,实际上对于DLL文件来说它导出的还是函数。——以上,个人的一点浅显理解。

问题:
有没有存在一种好的方式,让DLL能够被动态加载,并且[......]

更多…

学习下 WTL 的 thunk

由于 C++ 成员函数的调用机制问题,对C语言回调函数的 C++ 封装是件比较棘手的事。为了保持C++对象的独立性,理想情况是将回调函数设置到成员函数,而一般的回调函数格式通常是普通的C函数,尤其是 Windows API 中的。好在有些回调函数中留出了一个额外参数,这样便可以由这个通道将 this[......]

更多…

InternetOpenURL 内部 crash 的问题

近来遇上一个很诡异的 bug:InternetOpenURL 内部发生 crash。虽说发生问题的时刻总是处于这个 API 内部,可也一直不敢确定不是其他原因引起的,就这么一直拖着。

前两天终于有可以随时操作的且重现几率非常高的机器了,测试了一下,发现一个规律:只要在调用 InternetOpenU[......]

更多…