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