如何在MASM中声明函数指针?

时间:2014-02-25 17:19:29

标签: winapi assembly masm masm32

我在Windows上有这样的masm语法代码:

stru_40DBA0 dd 0FFFFFFFEh       ; GSCookieOffset ; SEH scope table for function 402B22
dd 0            ; GSCookieXOROffset
dd 0FFFFFFC0h       ; EHCookieOffset
dd 0            ; EHCookieXOROffset
dd 0FFFFFFFEh       ; ScopeRecord.EnclosingLevel
dd 0            ; ScopeRecord.FilterFunc
offset $LN19        ; ScopeRecord.HandlerFunc
.....
Foo proc near
....
$LN19:
....

masm会在偏移$ LN19 行产生错误,我尝试以这种方式修改它:

PTR PROTO $LN29

有人可以给我一些关于如何宣布这个的帮助吗?谢谢!

1 个答案:

答案 0 :(得分:1)

您需要做两件事:

  1. 确保标签是公开的,以便可以看到您使用其偏移的位置。
  2. 确保标签已声明您正在使用其偏移量。
  3. 执行后者的简单方法是在定义标签后定义结构。

    要使标签公开,您可以明确地公开它,例如:

    public $LN19
    

    ...或者您已经定义了标签的地方,您可以使用两个冒号而不是一个冒号:

    $LN19::