全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2691
推到 Plurk!
推到 Facebook!

编译EnumProcesses( )函数出错

答題得分者是:dllee
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-20 11:50:50 IP:211.162.xxx.xxx 未訂閱
大大们好,小弟问题多多,烦劳您们能点拨一下我: 在Win2k下枚举当前/远程系统进程,可以使用专有函数PDH(Performance Data Helper),这类函数包含在PDH.dll文件中.我现在想利用该类函数,代码如下:
#include 
#pragma hdrstop

#include 
#include 
#include     #include "Unit1.h"    //---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------    void __fastcall TForm1::Button1Click(TObject *Sender)
{
        DWORD PID[500];
        DWORD Need;
        
        EnumProcesses(PID,sizeof(PID),&Need);
}
正准备写后面的代码,我想先看看现在是否能编译,当按下F9.悲剧发生了: < class="code"> [Linker Error] Unresolved external 'EnumProcesses' referenced from C:\TEST\UNIT1.OBJ Oh,神啊,救救我吧.怎么还会不认识EnumProcesses函数,我已经把相关的头文件加上去了(只要是和pdh有关的头文件都加上去了啊).关于这个加头文件的问题我还请教过各位大大 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=33541 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=33532 我查询了站内有关EnumProcesses()的内容: http://delphi.ktop.com.tw/topic.php?topic_id=25635 同时我也查看了MSDN中它的资料: BOOL EnumProcesses ( DWORD * lpidProcess, //指向保存进程数据的缓冲区 DWORD cb, //lpidProcess缓冲区的大小,每个进程占用4个字节 DWORD * cbNeeded //返回实际所需要的缓冲区大小 ); 我使用该函数时参数好象没有用错(很有可能自己用错了,只不过白痴的我没有看出来< >) 我生性愚钝,仍然未能理解自己错在那里,希望大大您能指点迷津,拜谢了< > 人生在勤,不索何获?
------
人生在勤,不索何获?
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-20 21:29:44 IP:61.224.xxx.xxx 未訂閱
沒錯!沒用錯! 所以 Compile 都過了,現在的問題是在 Linker Error 而 Linker Error 是表示找不到外部的模組或 lib 有指定的函式。    當您使用 psapi, pdh, pdhmsg ... 這類 .h 檔時, 請將 BCB 安裝目錄下的 LIB 目錄下的 PSDK 目錄下的    pdh.lib psapi.lib    這兩個檔加到您的專案中,可由 Project -> Add To Project... 將上述的檔案加入您的專案,再 BUILD 一次就 OK 了。    沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
bigdogchina
版主


發表:238
回覆:523
積分:312
註冊:2003-04-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-21 10:35:34 IP:211.162.xxx.xxx 未訂閱
dllee大大,我已经无法用言语来表达对您的感激,大恩不言谢,能得到您的指导是我的荣幸!!! 真是应该加强基本功,因为如果是编译器不认识 class="code"> [C Error] Unit1.cpp(25): E2268 Call to undefined function 'EnumProcesses' 而不是 [Linker Error] Unresolved external 'EnumProcesses' referenced from C:\TEST\UNIT1.OBJ 我又犯了南辕北辙这个毛病,不过通过您的解释我又明白了在Linker时出错的解决办法,又学到一招,爽< > 您铿锵有力的回答"沒錯!沒用錯!"让我找回了信心哦< > 人生在勤,不索何获?
------
人生在勤,不索何获?
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-21 22:26:37 IP:61.224.xxx.xxx 未訂閱
哈哈! 看您的問題,愈來愈有意思囉,相信功力已提升不少, 希望,能在作品發表區看到您的大作, 期待中...    沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
系統時間:2024-05-06 3:54:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!