我的问题如下:我有一个程序在当前目录中查找特定的文件扩展名。如果我使用FASM中包含的调用宏,代码可以工作。但是我需要直接使用call指令调用winAPI,并在堆栈中推送它们的参数。
我试过这个,但不能正常工作并使我的程序崩溃:
;Push parameters for the function
push FIND_STRUCT ;Put in the stack the address of FIND_STRUCT
push file_extension ;File extension
call FindFirstFile ; find the first *.fly
请问,有人可以解释我如何正确调用像FindFirstFile和FindNextFile这样的WinAPI吗?谢谢你的回答。
答案 0 :(得分:1)
我发现API名称可能是指针。如果我是对的,调用API名称的方法是用方括号括起API名称,如下所示:[API_name]
。这个技巧至少适用于我的FASM汇编程序和我。
如果您不使用方括号,则调用指针的地址,而不是指向的地址。因此,使用方括号并在其中包含API名称,以调用API地址,而不是其指针地址。
我希望我的问题的答案对于有同样问题的其他人有用。