这段代码怎么编译的时候会通不过阿?

C_Stranger 2008-09-23 12:01:30
代码应该不会有什么问题吧?-----这是网上拷贝下来的!

#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include <Psapi.h>

void PrintProcessNameAndID( DWORD processID )
{
TCHAR szProcessName[MAX_PATH] = TEXT("<unknown>");

// Get a handle to the process.

HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, processID );

// Get the process name.

if (NULL != hProcess )
{
HMODULE hMod;
DWORD cbNeeded;

if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod), &cbNeeded) )
{
GetModuleBaseName( hProcess, hMod, szProcessName,
sizeof(szProcessName)/sizeof(TCHAR) );
}
}

// Print the process name and identifier.

_tprintf( TEXT("%s (PID: %u)\n"), szProcessName, processID );

CloseHandle( hProcess );
}

void main( )
{
// Get the list of process identifiers.

DWORD aProcesses[1024], cbNeeded, cProcesses;
unsigned int i;

if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) )
return;

// Calculate how many process identifiers were returned.

cProcesses = cbNeeded / sizeof(DWORD);

// Print the name and process identifier for each process.

for ( i = 0; i < cProcesses; i++ )
PrintProcessNameAndID( aProcesses[i] );
}

...全文
152 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
C_Stranger 2008-09-23
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 CSYNYK 的回复:]
呵呵!指明库文件的路径就行了!
#pragma comment ( lib, "c:\\xxx\\xxx\\Psapi.lib" )
[/Quote]
呵呵!搞顶,谢谢!
也谢谢楼上各位大虾!
_石头_ 2008-09-23
  • 打赏
  • 举报
回复
呵呵!指明库文件的路径就行了!
#pragma comment ( lib, "c:\\xxx\\xxx\\Psapi.lib" )
sys0001 2008-09-23
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 C_Stranger 的回复:]
我按1楼的提示增加了:#pragma comment ( lib, "Psapi.lib" )
编译的时候还是提示,打不开Psapi.lib啊!
[/Quote]

设置lib路径
C_Stranger 2008-09-23
  • 打赏
  • 举报
回复
我按1楼的提示增加了:#pragma comment ( lib, "Psapi.lib" )
编译的时候还是提示,打不开Psapi.lib啊!
C_Stranger 2008-09-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 CSYNYK 的回复:]
#include <Psapi.h>
不是系统目录下的头文件,确认一下该头文件的位置,如果不对可以把它拷贝到编译器的include目录下!
[/Quote]
这样做以后,头文件好像找到了!还有3个错误:
Linking...
Enum All Arocess.obj : error LNK2001: unresolved external symbol _GetModuleBaseNameA@16
Enum All Arocess.obj : error LNK2001: unresolved external symbol _EnumProcessModules@16
Enum All Arocess.obj : error LNK2001: unresolved external symbol _EnumProcesses@12
Debug/Enum All Arocess.exe : fatal error LNK1120: 3 unresolved externals
执行 link.exe 时出错.
_石头_ 2008-09-23
  • 打赏
  • 举报
回复
接下来就按1楼的提示去做!
星羽 2008-09-23
  • 打赏
  • 举报
回复
你没导入lib

在工程设置里导入,或者加上

#pragma comment(lib, "Psapi.lib")
_石头_ 2008-09-23
  • 打赏
  • 举报
回复
#include <Psapi.h>
不是系统目录下的头文件,确认一下该头文件的位置,如果不对可以把它拷贝到编译器的include目录下!
_石头_ 2008-09-23
  • 打赏
  • 举报
回复
看看先!
sys0001 2008-09-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 freshairfly 的回复:]
晕,颜色在代码段里无效
[/Quote]

#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include <Psapi.h>

#pragma comment ( lib, "Psapi.lib" )
freshairfly 2008-09-23
  • 打赏
  • 举报
回复
晕,颜色在代码段里无效
freshairfly 2008-09-23
  • 打赏
  • 举报
回复

#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include <Psapi.h>

#pragma comment ( lib, "Psapi.lib" )

void PrintProcessNameAndID( DWORD processID )
{
TCHAR szProcessName[MAX_PATH] = TEXT("<unknown>");

// Get a handle to the process.

HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, processID );

// Get the process name.

if (NULL != hProcess )
{
HMODULE hMod;
DWORD cbNeeded;

if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod), &cbNeeded) )
{
GetModuleBaseName( hProcess, hMod, szProcessName,
sizeof(szProcessName)/sizeof(TCHAR) );
}
}

// Print the process name and identifier.

_tprintf( TEXT("%s (PID: %u)\n"), szProcessName, processID );

CloseHandle( hProcess );
}

void main( )
{
// Get the list of process identifiers.

DWORD aProcesses[1024], cbNeeded, cProcesses;
unsigned int i;

if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) )
return;

// Calculate how many process identifiers were returned.

cProcesses = cbNeeded / sizeof(DWORD);

// Print the name and process identifier for each process.

for ( i = 0; i < cProcesses; i++ )
PrintProcessNameAndID( aProcesses[i] );
}


加上红色那句就OK
freshairfly 2008-09-23
  • 打赏
  • 举报
回复
链接问题,在#include 下面添加
#pragma comment ( lib, "Psapi.lib" )

或者在工程设置中导入Psapi.lib

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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