在這段代碼中:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdIOHandler, IdGlobal, StdCtrls;
function WaitForCommand(args: Pointer): Cardinal; stdcall;
begin
while client.Connected do
if not HandleResponse(client.IOHandler) then
break;
Result := 0;
end;
我有這個錯誤:
[DCC 錯誤] Unit1.pas(159):E2003 未宣告的識別符號:“HandleResponse”
uj5u.com熱心網友回復:
如何理解訊息?
讓我們分部分閱讀:
-
[DCC 錯誤]
DCC 是 Delphi 編譯器,所以它是關于我們的代碼,而不是關于鏈接或打包。
-
單元1.pas
發生錯誤的檔案。通常,Delphi 的編輯器會自動向您顯示該檔案。
-
(159)
發生錯誤的行。通常,Delphi 的編輯器會自動將您的文本游標置于這一行。
-
E2003
這是錯誤的代碼,以防任何進一步的文本不可用。就像 HTTP 的狀態
404是一個代碼(帶有實際文本“未找到”)或交通燈red是一個代碼(沒有任何進一步的文本告訴您停止)。 -
未宣告的識別符號:
此時編譯器不知道如何解釋現在命名的內容。甚至無法告訴您它是缺少函式、缺少型別還是其他 - 因此是“識別符號”的總稱。
-
'處理回應'
通常,Delphi 的編輯器會自動將您的文本游標放在無法理解的文本開頭的問題行中。
你能做什么?
它是未宣告的。宣布它。然而,只有你自己知道你想要什么。你可以
- 宣告一個型別:
type HandleResponse= Boolean; - 定義一個函式:
function HandleResponse(h: TIdIOHandler): Boolean; begin result:= FALSE; end; - 從 DLL 匯入函式:
function HandleResponse(p: Pointer): LongBool; stdcall; external 'any.dll'; - 添加可能已經擁有它的單元:
uses WhatIsMissingSoFar;
...或者做其他我還需要記住的事情。但我相信你明白,在這 3 個例子中,識別符號 HandleResponse現在被宣告了。我不必告訴你必須在使用它之前進行宣告,對吧?
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/435800.html
上一篇:浮點雙精度常量被視為擴展
下一篇:如何回傳具有特定字符的陣列串列
