汇编中SetWindowText 函数的第一个参数不能是eax吗
展开全部
因为 invoke 指令中如果你使用了 addr 即 取地址伪操作符
且 addr 的对象是个局部变量 的话 编译器会使用寄存器eax。比如
local @szString
invoke SetWindowText,eax,addr @szString
这里 "addr @szString"
会被翻译为:
lea eax,@szString
push eax
此时 eax 的值已被更改 你不能再用它作为此函数的 参数了
比如 这里 的窗口句柄 `~~~~
解决方法:
mov ebx,eax
然后 以 ebx 作为参数
且 addr 的对象是个局部变量 的话 编译器会使用寄存器eax。比如
local @szString
invoke SetWindowText,eax,addr @szString
这里 "addr @szString"
会被翻译为:
lea eax,@szString
push eax
此时 eax 的值已被更改 你不能再用它作为此函数的 参数了
比如 这里 的窗口句柄 `~~~~
解决方法:
mov ebx,eax
然后 以 ebx 作为参数
展开全部
因为 invoke 指令中如果你使用了 addr 即 取地址伪操作符
且 addr 的对象是个局部变量 的话 编译器会使用寄存器eax。比如
local @szString
invoke SetWindowText,eax,addr @szString
这里 "addr @szString"
会被翻译为:
lea eax,@szString
push eax
此时 eax 的值已被更改 你不能再用它作为此函数的 参数了
比如 这里 的窗口句柄 `~~~~
解决方法:
mov ebx,eax
然后 以 ebx 作为参数
且 addr 的对象是个局部变量 的话 编译器会使用寄存器eax。比如
local @szString
invoke SetWindowText,eax,addr @szString
这里 "addr @szString"
会被翻译为:
lea eax,@szString
push eax
此时 eax 的值已被更改 你不能再用它作为此函数的 参数了
比如 这里 的窗口句柄 `~~~~
解决方法:
mov ebx,eax
然后 以 ebx 作为参数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为 invoke 指令中如果你使用了 addr 即 取地址伪操作符
且 addr 的对象是个局部变量 的话 编译器会使用寄存器eax。比如
local @szString
invoke SetWindowText,eax,addr @szString
这里 "addr @szString"
会被翻译为:
lea eax,@szString
push eax
此时 eax 的值已被更改 你不能再用它作为此函数的 参数了
比如 这里 的窗口句柄 `~~~~
解决方法:
mov ebx,eax
然后 以 ebx 作为参数
且 addr 的对象是个局部变量 的话 编译器会使用寄存器eax。比如
local @szString
invoke SetWindowText,eax,addr @szString
这里 "addr @szString"
会被翻译为:
lea eax,@szString
push eax
此时 eax 的值已被更改 你不能再用它作为此函数的 参数了
比如 这里 的窗口句柄 `~~~~
解决方法:
mov ebx,eax
然后 以 ebx 作为参数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
bhgahjazjhsqjhzsqhjbzjjkaznl, wkzn,z nnzwn k.z wmk.zwm.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅鹅饿鹅鹅鹅饿谔谔呃呃呃呃呃呃呃呃呃鹅鹅鹅呃呃呃恩恩呃呃呃呃呃呃鹅鹅鹅呃呃呃恩恩
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询