永发信息网

函数句柄是什么意思

答案:2  悬赏:0  手机版
解决时间 2021-12-24 04:02
函数句柄是什么意思
最佳答案
问题一:matlab中函数的句柄是什么意思?有什么作用?最好举个例子说明!不胜感激! 比如定义f(x)=x^2,可以写为
f=@(x)(x.^2)
其中@(x)(x.^2)就是匿名函数,第一个括号里面是自变量,第二个括号里面是表达式,@是函数指针
f=@(x)(x.^2)表示将匿名函数@(x)(x.^2)赋值给f,于是f就表示该函数。
于是f(2)=2.^2=4;f(1:3)=[1:3].^2=[1 4 9]等等
定义匿名函数时也可以调用别的匿名函数,比如
f1=@(x,y)(x.^2+y.^2)
定义了函数x^2+y^2
f2=@(t)(f1(t,2))
定义了函数t^2+4
f3=@(x)(f1(x(1),x(2)))
定义了函数x(1)^2+x(2)^2
使用匿名函数时一定要注意函数本身的参数形式,如
f1(2,3)
表示2^2+3^2
f2(3)=3
表示3^2+4
f3([1,2])
表示1^2+2^2
说白了就是函数指针
参考资料:引弧greatdju 大哥的讲解问题二:函数句柄和指针的区别是什么 句柄实际上是一种指向某种资源的指针,但与指针又有所不同:指针对应着一个数据在内存中的地址,得到了指针就可以自由地修改该数据。Windows并不希望一般程序修改其内部数据结构,因为这样太不安全。所以Windows给每个使用GlobalAlloc等函数声明的内存区域指定一个句柄(本质上仍是一个指针,但不要直接操作它),平时你只是在调用API函数时利用这个句柄来说明要操作哪段内存。当你需要对某个内存进行直接操作时,可以使用GlobalLock锁住这段内存并获得指针来直接进行操作。“句柄”(handle),handle的本意是把柄,把手的意思。是你与操作系统打交道的东西。举个例子:比如你做了亏心事(我说的是比如,呵呵),不幸让我抓住了把柄,那么我让你做什么你就得做什么,因为你的把柄在我这。我们编程的时候也是这样,比如我们要想操纵一个窗口,那我们就必须“抓住它的把柄”,只有这样,我们才能改变它的属性,改变它的式样,甚至销毁它(狠了点儿)。我们再引用一个通俗一点的例子,比如你考上了大学,入学后,学校(操作系统)会给你一个学生证号。注意,这个号码是学校指定的,你无法自选。有了这个号码(学生证,假设一证多用)就可以享受学校提供的服务:如你就可以去图书馆借书,去食堂吃饭,去教室上课等等。但你不能到食堂里买啤酒,因为学校不允许这种服务。而在计算机中系统提供的服务就是API调用,你有了HANDLE,就可以理直气壮地向系统提出调用API的服务。而指针的权力就大多了,有了指针你可以到处去喝酒,打架,学校(操作系统)管不着,所以句柄和指针的区别在于句柄只能调用系统提供的服务。而句柄虽然是一个能相互区别的号码,但与我们普通的ID号又有区别,普通的ID号是可以由程序员自己定义的,而句柄不行,它是对象生成时系统指定的,是为了区别系统中存在的各个对象,这个句柄不是由程序员赋给的。实际应用中,最常用的就是文件句柄和窗口句柄。例如,窗口句柄的值是一个长整数,每个窗体都用一个句柄来表示。所以句柄是不会重复的,很多的函数都会用到窗体的句柄。问题三:什么是句柄? 句柄是一个(通常为32位的)整数,它代表一个对象。Windows中的句柄类似传统C或者MS-DOS程序设计中使用的文件句柄。程序几乎总是通过呼叫Windows函数取得句柄。程序在其它Windows函数中使用这个句柄,以使用它代表的对象。在 Windows 中,窗口可以有许多种。窗口可以是屏幕上的一块矩形封闭区域,比如您熟悉的应用程序窗口。窗体上的控件(例如列表框或滚动条)也可以是窗口,但并不是所有类型的控件都是窗口。桌面上的图标和桌面本身也是窗口。因为所有这些类型的对象都是窗口,所以 Windows 可以用类似的方式处理它们。Windows 给每个窗口一个唯一的句柄,通过句柄操纵该窗口。许多 API 函数可返回句柄或者接受句柄作参数。
创建窗口时,Windows 给它指派一个句柄,窗口消失后句柄被释放。问题四:“句柄”到底是什么意思 句柄可以理解为操作标示
比如一个程序有好多窗口,每个窗口有好多的属性
如何操作某个窗口就让系统很头疼
于是对不同窗口用不同的标示,窗口句柄
DECLARE_HANDLE 就是HWND
然后好多函数通过这个标示来判断对哪个窗口操作
如 ::SetWindowText( hWnd , strTitle ...
其他的还有好多类型的句柄
想文件句柄,线程句柄等等
句柄不深奥,是翻译者给神话了。就是控制、操作标识!问题五:怎么得到一个句柄呢,是什么函数 ::GetDlgItem(m_hWnd, nID);
GetDlgItem原形:
HWND (_stdcall *GetDlgItem)(HWND,int);
参数:
HWND 为窗口句柄
int 窗口句柄内的控件/子窗口 ID
返回值:
HWND 控件/子窗口 句柄
NULL 父窗口无效/ID无效,GetLastError()查询错误代码。问题六:matlab中函数的句柄是什么意思 比如定义f(x)=x^2,可以写为
f=@(x)(x.^2)
其中@(x)(x.^2)就是匿名函数,第一个括号里面是自变量,第二个括号里面是表达式,@是函数指针
f=@(x)(x.^2)表示将匿名函数@(x)(x.^2)赋值给f,于是f就表示该函数。
于是f(2)=2.^2=4;f(1:3)=[1:3].^2=[1 4 9]等等
定义匿名函数时也可以调用别的匿名函数,比如
f1=@(x,y)(x.^2+y.^2)
定义了函数x^2+y^2
f2=@(t)(f1(t,2))
定义了函数t^2+4
f3=@(x)(f1(x(1),x(2)))
定义了函数x(1)^2+x(2)^2
使用匿名函数时一定要注意函数本身的参数形式,如
f1(2,3)
表示2^2+3^2
f2(3)=3
表示3^2+4
f3([1,2])
表示1^2+2^2
说白了就是函数指针问题七:MATLAB的函数句柄干嘛用的,具体怎么使用? 最简单的用@符号获取函数句柄。
int(@sin)
或者用inline郸可以,
fun=inline('sin(x)');
int(fun)问题八:实例和句柄的区别是什么? 通常实例就是指对象的实例,如CString myStr; 这里myStr是CString类的一个实例。
句柄有些文章地方也用,一般指实例的指针。如窗口句柄,就是指窗口的指针;Socket句柄就是指某个Socket的指针。问题九:这些函数是什么意思? 第一个VB声明编辑
Declare Function GetModuleHandle Lib kernel32 Alias GetModuleHandleA (ByVal lpModuleName As String) As Long说明获取一个应用程序或动态链接库的模块句柄返回值Long,如执行成功成功,则返回模块句柄。零表示失败。会设置GetLastError参数表参数 类型及说明lpModuleName String,指定模块名,这通常是与模块的文件名相同的一个名字。例如,NOTEPAD.EXE程序的模块文件名就叫作NOTEPAD注解只有在当前进程的场景中,这个句柄才会有效
2VC声明编辑
12
HMODULEGetModuleHandle(LPCTSTRlpModuleName);
功能说明获取一个特定的应用程序或动态链接库的模块句柄,且这个模块必须已经被加载到调用者的进程空间中。参数说明lpModuleName 模块名称返回值如执行成功成功,则返回模块句柄。零表示失败。通过GetLastError获得错误信息如:
1
GetModuleHandle(NULL);
这将返回自身应用程序句柄注意前提是:只有欲获取的模块已映射到调用该函数的进程内,才会正确得到模块句柄。常用模块映射函数:LoadLibrary(..)。
3WIN32汇编声明编辑
GetModuleHandle,lpModuleName函数的作用是返回指定模块名的句柄,如果为NULL,则返回本模块的句柄。返回的句柄值存放在寄存器eax中。lpModuleName参数是一个指向含有模块名称字符串的指针;使用举例:
123456789101112131415161718
.686p.xmm.mmx.modelflat,stdcalloptioncasemap:none.dataszUserDlldb'User32.dll',0.data?hUserDllHandledd?sbErrorinvokeExitProcess,0start:invokeGetModuleHandle,offsetszUserDlltesteax,eaxjesbErrormovhUserDllHandle,eaxendstart...
4易语言声明编辑
Ansi版本:.版本 2.DLL命令 GetModuleHandleA, 整数型, kernel32.dll, GetModuleHandleA.参数 lpModuleName, 文本型Unicode版本:.版本 2.DLL命令 GetModuleHandleW, 整数型, kernel32.dll, GetModuleHandleW.参数 lpModuleName, 字节集
第二个
当等待仍在挂起状态时,句柄被关闭,那么函数行为是未定义的。该句柄必须具有 SYNCHRONIZE 访问权限。
目录
1对应函数
2说明
? 参数 ? 返回值
1对应函数编辑
VC声明DWORD WaitForSingleObject(
HANDLE hHandle,
......余下全文>>
全部回答
感谢回答
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
本人今年16岁1米79体重58公斤按理来说不算胖
马一村委会办公地址在什么地方?我要处理点事
there is a police officer standing next to
为什么我的excel常在打印的时候死机
2012年1月22日,中国农历龙年春节到来之际,
单选题东山林场栽苹果树240棵,是栽桔树棵数
马二村委会在什么地方啊,我要处理点事
中国大湿地什么意思
填空题函数y=x2-2x-3,x∈(-1,2]的值域为__
小智在 斗鱼直播里 ID 多少 什么时候直播
马三村委会地址在什么地方?想过去办事
单选题为促进根多吸收矿质元素,农业生产中常
请问一下用手机上QQ能改用户密码吗?在哪里改?
山羊绒手织毛衣成人的排多少针
吴江市三里桥哪个电子厂好
推荐资讯
地下城体验服拉取文件列表失败,错误代码6602
手机怎么共享流量
华为手机隐藏图标在哪
美食奇缘上映了么
手机主题,告诉我一个特别的比较好用的主题软
会声会影,编辑的过程中,嘴型和音乐对上了,
对生活中的一些常识进行了总结,其中不合理的
苹果切片敷脸有什么好处
I saw LiMing near the river on my way hom
I think it’s the driver rather than the p
牛男和猴女
下列家用电器工作时,主要把电能转化为内能的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?