分不多,请高手帮忙解决个汇编取得工作组的问题(NetWkstaGetInfo)

fanbinnet 2008-09-17 09:05:19
Win32汇编中,我要取得当前的工作组,
调用NetWkstaGetInfo,方式如下

dwLevel dd 102
pBuf db 512 (?)

invoke NetWkstaGetInfo,NULL,addr dwLevel,addr pBuf


调用结果,函数返回成功,但是我调试,看pBuf中的内容,发现却是空的,
不知道为什么,请高手回答。

环境是 windows XP sp2
...全文
129 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dalixux 2008-09-22
  • 打赏
  • 举报
回复
.386
.model flat,stdcall
option casemap:none

include windows.inc
include kernel32.inc
includelib kernel32.lib
include user32.inc
includelib user32.lib
include netapi32.inc
includelib netapi32.lib

.data
pBuf db 521 dup (?)
ppBuf dd ?

.code
start:
mov ppBuf, offset pBuf
invoke NetWkstaGetInfo,NULL,102,addr ppBuf
.if eax == NERR_Success
invoke MessageBox,NULL,NULL,NULL,MB_OK
.endif
ret
end start


你确定有问题?

fanbinnet 2008-09-18
  • 打赏
  • 举报
回复
谢谢,你写的代码,也是有点问题的。
但我已经自己解决了
dalixux 2008-09-18
  • 打赏
  • 举报
回复
最后 一个参数有问题
应该是(LPBYTE *)&pBuf 指向 字节数组指针的指针
addr pBuf 只是指向字节数组的指针

ppBuf dd ?

mov ppBuf, offset pBuf

invoke NetWkstaGetInfo,NULL,addr dwLevel,addr ppBuf

小声的说一句 WIN32汇编 不是很方便 头文件中声明的结构 没有对齐
会导致 有些API 调用失败 不如直接学C的WIN32编程 因为C的编译器
会对结构自动字节对齐
fanbinnet 2008-09-18
  • 打赏
  • 举报
回复
顶下
fanbinnet 2008-09-17
  • 打赏
  • 举报
回复
invoke NetWkstaGetInfo,NULL,dwLevel,addr pBuf

上面笔误,多了个 addr

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧