回 帖 发 新 帖 刷新版面

主题:请教Windows编程,窗口句柄和实例句柄具体有什么区别

又是一个初学windows编程的新手  C/C++勉强学完了  不敢说绝对的精通也算是没白学……
正在看 Windows程序设计 那本书  搞不清楚窗口句柄HWND 和实例句柄HINSTANCE 具体是什么区别  都是定义在WinMain中的  书上说的似乎不太明确啊  请问具体是什么区别啊?


最近正在开始学windows编程,准备不懂就问了,高手们我先谢谢你们了啊!!

回复列表 (共17个回复)

沙发

那我问你double型变量跟int型变量有什么区别啊???

板凳

楼上的你可等于什么也没说啊?  
int和double类型不同  在存储器中的存储方式不同  估计32位的word中  int类型第一位是符号未  后边一般以二进制补码形式存储  浮点数也占用1个符号位 8个指数位和23个精度位  double的应该是64位的那就是1个符号位11个指数位其余的是精度了啊  你问我我就回答了
你还是告诉我他们不同除了类型的区别以外  在WIN程序中体现在什么不同的功能区别吧  谢谢!

3 楼

两个类型干吗要扯到一起去?
具体没区别,都定义为void *,主要为了定义用途明显。
MSDN上关于类型的定义有说明

4 楼

句柄它用来标识一种资源,比如窗口是一种资源同样一个应用程序的实例也是一种资源的(它们都占用一定的内存资源,你想想怎样才能表示一个窗口和一个实例呢?)Windows允许我们通过句柄去引用它们,只能用对应的句柄去跟特定的资源打交道,而不允许直接的操纵它们(这些资源),这就保证了系统的安全性。定义一个句柄这就相当于我们定义一个变量一样...............

5 楼

其实关于句柄的问题的讨论不是一天两天了
句柄是操作系统管理资源的标志,在系统内部就是用句柄来标识不同的资源的

6 楼

先谢谢各位!!
句柄的概念我还是了解,而且OS的工作我初学就不管那么多  我只是从Win编程的角度问:HWND 和 HINSTANCE各自的功能是什么?  既然是2个不同的struct  其中的字段就应该不同  但是再编程中都是为了实现什么目的呢?

7 楼

问MS去.

8 楼

能问我就去问了  谁知到啊  告诉我一下吧  求求你说点有用的内容吧……

9 楼

我的意思是你没有必要去区别这几个东东,这些都只是一个标识,是操作系统内部用于资源管理的.具体什么意义只有操作系统知道,所以我只能让你去问MS.写代码的时候,我们只需要弄清楚什么时候调用那种标识就可以了.
同样还有
HANDLE HMODULE HBITMAP HMENU等等,这些都是由操作系统在进行管理和分配.我们只能使用.不同的类型只是方便我们使用而已.如果都定义为void *我想你也不知道调用函数的时候该使用那个句柄了吧????

10 楼

哦  向你说的那样:void* ……  我还真是可以把 h 开头的句柄当成指针用了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册