Windows编程基础
文章平均质量分 62
a-ray-of-sunshine
这个作者很懒,什么都没留下…
展开
-
Win32 SDK函数MessageBox的模拟实现(C语言版)
版本一:对于使用“掩码”传递参数的方法,简单的实现思路:#include #define MB_OK 0x00000000#define MB_OKCANCEL 0x00000001 #define MB_ICONHAND 0x00000010#define MB_ICONQUESTION 0x00000020 #d原创 2013-10-12 15:26:15 · 1058 阅读 · 0 评论 -
关于字符串的内存分配问题
字符串可以分配在栈,堆,和字符串常量区(静态数据区)中,这三种不同的内存结构具有不同的页(page)属性,这些属性决定了三种不同的字符串特性:1.在栈上分配字符串 在栈上分配字符串实质上又可以分成两种方法,具体方法如下所示: ① TCHAR str1[5] = {'H', 'e', 'l', 'l', 'o'};如图上图所示,它是语句①汇编后的代码,图中的红色方框一原创 2013-10-13 20:04:34 · 2751 阅读 · 0 评论 -
关于模板的思考
对于模板函数和模板类来说,其参数类型也是被参数化的,如: template bool compare(const T v1, const T v2) { return v1 - v2; } 其中的参数v1和v2为T,只有在运行时(原创 2013-10-19 19:07:39 · 587 阅读 · 0 评论 -
在控制台(Console)环境下编译Windows GUI程序
示例文件://保存为message.c文件#include INT CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nCmdShow){ MessageBox(NULL, TEXT("Hello, World"), TEXT("test")原创 2013-10-13 20:13:43 · 896 阅读 · 0 评论 -
Console学习
1.Console Handle(控制台句柄)1.1 进程的三种标准句柄 每个console进程都有standard input(STDIN), standard output(STDOUT), standard error(STDERR)三种句柄与之相关联,当系统创建console进程时,系统默认地将该进程的STDIN与该进程的控制台的输入缓冲区(input buffer)相关联,原创 2013-10-06 18:24:56 · 1555 阅读 · 0 评论 -
关于VC中生成的PE(exe, dll, sys...)文件中对函数名称的修饰
1.导出函数的方法:(1)在要导出的函数签名(signature)上添加关键字__declspec(dllexport)例如:void __declspec(dllexport) _cdecl someFun(){ printf("Hello, World!\n");}使用这种方法导出的函数,函数的名称修饰,为默认的修饰方法:(1).1原创 2013-10-12 12:32:36 · 1085 阅读 · 0 评论 -
关于对象文件在进行连接时的一些思考
实例程序如下:// a.c// 编译指令:cl /c a.c ----> a.objint a; // b.cextern int a;int main(){ int b = a;}文件 b.c 编译后生成 b.obj 文件 ,extern 关键字表明整型变量(int) e 来自于外部的 .obj 文件或者.lib文件,所以为了正确得到该原创 2013-10-12 13:01:02 · 700 阅读 · 0 评论 -
控制台生成DLL文件的方法
一:编译生成DLL文件的方法:方法一:1.cl /c FasterString.cpp ------->FasterString.obj2.lib /DEF FasterString.obj ------->FasterString.exp and FasterString.lib3.link /dll FasterString.exp FasterString.obj-----原创 2013-10-12 12:23:40 · 1454 阅读 · 0 评论 -
windows资源文件(.rc)是如何变成窗口控件的
在Visual C++使用资源来创建对话框,菜单,以及一些自定义控件,实际是为了减少基于Win32 SDK编程开发人员在编写Application时创建大量窗口,和控件(实际上也是窗口)的痛苦(大量使用CreateWindow,还要设置其中的参数,有些参数,初始化显示位置X, Y,窗口(或控件)的宽度和高度等,使用CreateWindow来设置非常不直观,只能凭经验来设置合理的位置和大小)。原创 2013-10-12 15:17:18 · 2267 阅读 · 1 评论 -
GLIB源码学习
下载源码 1.搭建学习环境原创 2015-04-10 09:24:31 · 1364 阅读 · 0 评论