如何在 MASM 中调用指向函数的指针
所以我试图调用指向函数的指针,但失败了。有人可以帮忙吗?
我像这样存储函数指针:
mov pFunction,offset Function
我实际上可以通过这样做来调用工作:
call pFunction
但是当我尝试这样做时:
invoke pFunction
我得到“错误 A2190:INVOKE 需要过程原型”。
如果我尝试这样做:
invoke Function pFunction
我收到“错误 A2206:表达式中缺少运算符”。
有什么想法吗?
PS:完整列表如下:
.386
.model flat,stdcall
option casemap: none
include d:\masm32\include\windows.inc
include d:\masm32\include\kernel32.inc
includelib d:\masm32\lib\kernel32.lib
Function proto
.data?
pFunction dd ?
.code
start:
mov pFunction,offset Function
invoke pFunction
push 0
call ExitProcess
Function proc
ret
Function endp
end start
So I'm trying to invoke a pointer to a function, but I'm failing. Could somebody please help?
I'm storing the function pointer like so:
mov pFunction,offset Function
I can actually get the call to work by doing this:
call pFunction
But when I try this:
invoke pFunction
I get "error A2190: INVOKE requires prototype for procedure".
And if I try this:
invoke Function pFunction
I get "error A2206: missing operator in expression".
Any ideas?
PS: here is the whole listing:
.386
.model flat,stdcall
option casemap: none
include d:\masm32\include\windows.inc
include d:\masm32\include\kernel32.inc
includelib d:\masm32\lib\kernel32.lib
Function proto
.data?
pFunction dd ?
.code
start:
mov pFunction,offset Function
invoke pFunction
push 0
call ExitProcess
Function proc
ret
Function endp
end start
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我刚刚在这里找到答案
http://webster.cs.ucr.edu /Page_TechDocs/MASMDoc/ProgrammersGuide/Chap_07.htm
这是您必须做的:
I just found the answer here
http://webster.cs.ucr.edu/Page_TechDocs/MASMDoc/ProgrammersGuide/Chap_07.htm
This is what you have to do: