随笔分类 -  Windows编程

摘要:PeekMessage函数:先看看MSDN怎么说:PeekMessage functionDispatches incoming sent messages, checks the thread message queue for a posted message, and retrieves th... 阅读全文
posted @ 2014-05-28 15:40 shokey520 阅读(425) 评论(0) 推荐(0)
摘要:《windows核心编程》第26章详细的分析了窗口消息,让人豁然开朗。学习小结:1、消息队列分为Post消息队列、Send消息队列、虚拟输入消息队列和应答消息队列。2、PostMessage是将消息发送到消息的线程队列然后返回。3、SendMessage表面看是发送消息,等消息处理完毕后返回。实际上... 阅读全文
posted @ 2014-05-28 10:29 shokey520 阅读(326) 评论(0) 推荐(0)
摘要:看《windows via c/c++》第4章进程时,里面提到了windows函数的入口函数在crtexe.c的__tmainCRTStartup ()中,于是跟踪了一下代码。重要的流程如下:各阶段的处理如下:Sample示例:#include // 本文件所提及的参考文件都位于目录Microsof... 阅读全文
posted @ 2014-04-22 16:28 shokey520 阅读(1042) 评论(0) 推荐(0)
摘要:main函数声明背景:main函数经常会声明为以下方式:int main();int main(int argc, char* argv[]);int main(int argc, char* argv[], char*envp[]);还有些会将返回类型替换为void,最常见的就是void main... 阅读全文
posted @ 2014-04-18 18:09 shokey520 阅读(835) 评论(0) 推荐(0)
摘要:DllMain的执行线程DllMain()有4个通知:DLL_PROCESS_ATTACHDLL_THREAD_ATTACHDLL_THREAD_DETACHDLL_PROCESS_DETACH其中:DLL_PROCESS_ATTACH/DLL_PROCESS_DETACH由主线程执行DLL_THR... 阅读全文
posted @ 2014-04-18 17:22 shokey520 阅读(1253) 评论(0) 推荐(0)
摘要:开发C/C++多线程程序时,要使用C运行库的_beginthreadex()而不是windows API的CreateThread()。一、 _beginthreadex()_beginthreadex()是多线程版本C运行库提供的函数。C运行库最初设计的时候还没有多线程的使用,所有很多变量如err... 阅读全文
posted @ 2014-04-16 20:55 shokey520 阅读(5225) 评论(0) 推荐(0)
摘要:《Windows Via C/C++》读书笔记之dll入口函数一、DllMain()的一些知识与注意事项*** DllMain()是大小写敏感的。*** DllMain()里面不要处理太复杂的操作,且由于加载顺序不定,只有调用Kernel32的某些函数是安全的。参考文档:http://msdn.mi... 阅读全文
posted @ 2014-04-14 13:53 shokey520 阅读(836) 评论(0) 推荐(0)
摘要:《Windows Via C/C++》读书笔记之dll加载时刻一、静态加载1、loader启动exe程序时,扫描exe的import section,加载DLL2、exe程序退出时,卸载dlldll加载与卸载由系统控制,生命期横贯进程。二、动态加载1、调用LoadLibrary()/LoadLibr... 阅读全文
posted @ 2014-04-14 13:50 shokey520 阅读(311) 评论(0) 推荐(0)
摘要:《Windows Via C/C++》读书笔记之dll导出与加载一、dll导出导出dll符号可以通过修饰符或者.def文件。*** 通过修饰符__declspec(dllexport)导出,一般会在函数前面加上extern "C"来避免C++编译器对函数名的mangle处理。extern "C" _... 阅读全文
posted @ 2014-04-14 13:44 shokey520 阅读(267) 评论(0) 推荐(0)
摘要:《Windows Via C/C++》读书笔记之dll隐式链接一、使用方式exe要隐式链接一个dll,分阶段的需要.h文件,.lib文件和.dll文件。编译阶段:.h文件提供函数定义及变量定义链接阶段:.lib文件提供导出函数和变量的符号名称运行阶段:.dll文件提供代码和数据TIPS: 查看exe... 阅读全文
posted @ 2014-04-11 10:02 shokey520 阅读(352) 评论(0) 推荐(0)