主题:请教Windows编程,窗口句柄和实例句柄具体有什么区别
Geforce7900
[专家分:60] 发布于 2006-07-16 11:38:00
又是一个初学windows编程的新手 C/C++勉强学完了 不敢说绝对的精通也算是没白学……
正在看 Windows程序设计 那本书 搞不清楚窗口句柄HWND 和实例句柄HINSTANCE 具体是什么区别 都是定义在WinMain中的 书上说的似乎不太明确啊 请问具体是什么区别啊?
最近正在开始学windows编程,准备不懂就问了,高手们我先谢谢你们了啊!!
回复列表 (共17个回复)
沙发
InitInstance [专家分:8720] 发布于 2006-07-16 21:38:00
那我问你double型变量跟int型变量有什么区别啊???
板凳
Geforce7900 [专家分:60] 发布于 2006-07-17 09:36:00
楼上的你可等于什么也没说啊?
int和double类型不同 在存储器中的存储方式不同 估计32位的word中 int类型第一位是符号未 后边一般以二进制补码形式存储 浮点数也占用1个符号位 8个指数位和23个精度位 double的应该是64位的那就是1个符号位11个指数位其余的是精度了啊 你问我我就回答了
你还是告诉我他们不同除了类型的区别以外 在WIN程序中体现在什么不同的功能区别吧 谢谢!
3 楼
zlhhz [专家分:710] 发布于 2006-07-17 11:51:00
两个类型干吗要扯到一起去?
具体没区别,都定义为void *,主要为了定义用途明显。
MSDN上关于类型的定义有说明
4 楼
InitInstance [专家分:8720] 发布于 2006-07-17 21:28:00
句柄它用来标识一种资源,比如窗口是一种资源同样一个应用程序的实例也是一种资源的(它们都占用一定的内存资源,你想想怎样才能表示一个窗口和一个实例呢?)Windows允许我们通过句柄去引用它们,只能用对应的句柄去跟特定的资源打交道,而不允许直接的操纵它们(这些资源),这就保证了系统的安全性。定义一个句柄这就相当于我们定义一个变量一样...............
5 楼
guangmingshizhe [专家分:4930] 发布于 2006-07-18 08:37:00
其实关于句柄的问题的讨论不是一天两天了
句柄是操作系统管理资源的标志,在系统内部就是用句柄来标识不同的资源的
6 楼
Geforce7900 [专家分:60] 发布于 2006-07-18 19:46:00
先谢谢各位!!
句柄的概念我还是了解,而且OS的工作我初学就不管那么多 我只是从Win编程的角度问:HWND 和 HINSTANCE各自的功能是什么? 既然是2个不同的struct 其中的字段就应该不同 但是再编程中都是为了实现什么目的呢?
7 楼
aaronwang [专家分:16870] 发布于 2006-07-19 11:26:00
问MS去.
8 楼
Geforce7900 [专家分:60] 发布于 2006-07-19 19:16:00
能问我就去问了 谁知到啊 告诉我一下吧 求求你说点有用的内容吧……
9 楼
aaronwang [专家分:16870] 发布于 2006-07-19 21:08:00
我的意思是你没有必要去区别这几个东东,这些都只是一个标识,是操作系统内部用于资源管理的.具体什么意义只有操作系统知道,所以我只能让你去问MS.写代码的时候,我们只需要弄清楚什么时候调用那种标识就可以了.
同样还有
HANDLE HMODULE HBITMAP HMENU等等,这些都是由操作系统在进行管理和分配.我们只能使用.不同的类型只是方便我们使用而已.如果都定义为void *我想你也不知道调用函数的时候该使用那个句柄了吧????
10 楼
Geforce7900 [专家分:60] 发布于 2006-07-27 20:35:00
哦 向你说的那样:void* …… 我还真是可以把 h 开头的句柄当成指针用了。
我来回复