GeV20 发表于 2012-9-3 19:36:10

Process32First函数被干掉了?

本帖最后由 GeV20 于 2012-9-4 11:31 编辑

求助:
程序使用了kernel32.dll库中的Process32First和Process32Next两个API函数,编译时出错,
D:\t\ProcessList\ProcessList.asm(41) : error A2006: undefined symbol : Process32First
D:\t\ProcessList\ProcessList.asm(47) : error A2006: undefined symbol : Process32Next


在kernel32.dll的导出表中找到关于他们的信息如下:
000002840005D279PrivMoveFileIdentityW
0000028500064005Process32First
0000028600063F4CProcess32FirstW
0000028700064178Process32Next
00000288000640D7Process32NextW
0000028900012F99ProcessIdToSessionId

在kernel32.inc中找到声明如下,
Process32FirstW PROTO STDCALL :DWORD,:DWORD
IFDEF __UNICODE__
Process32First equ <Process32FirstW>
ENDIF

Process32NextW PROTO STDCALL :DWORD,:DWORD
IFDEF __UNICODE__
Process32Next equ <Process32NextW>
ENDIF


备注: 1,XP操作系统,貌似没有他们的ASCII码版本.
         2, 在环境变量中设了有关路径,在其他程序中使用这库中的其他函数,有成功编译的例子,
             所以不会是路径问题.







GeV20 发表于 2012-9-3 19:47:36

这是书上抄下来的代码,编译作者的源码文件时也遇上同样的错误,但是他给出的exe文件能成功执行.

Ice_WolfZ 发表于 2013-1-25 11:46:16

你好,我也遇到同样的问题了,如果你已经解决了,能告诉我一下吗?谢谢

1236 发表于 2013-1-27 02:52:13

有时候不是函数名的问题 而是Lib inc写错了嘿,我是小白 乱说的{:7_156:}
页: [1]
查看完整版本: Process32First函数被干掉了?