![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что это: Unsatisfied forward or external declaration: 'P1202_AdsP
Чайник © (2007-04-06 03:38:00)Что за глюк (у меня или у Дельфи)?:
Есть юнит, в секции interface объявляю:
unit P1202_Scan;
interface
uses
Windows, SysUtils, Classes;
// Function of AD/DA
function P1202_AdsPolling(fAdVal: PSingle; wNum: Word): Word; stdCall;
в секции implementation соответсвенно:
function P1202_AdsPolling(fAdVal: PSingle; wNum: Word): Word; stdCall;
begin
...
end;
При попытке компиляции выдает:
[Error] P1202_Scan.pas(70): Previous declaration of 'P1202_AdsPolling' was not marked with the 'overload' directive
[Error] P1202_Scan.pas(16): Unsatisfied forward or external declaration: 'P1202_AdsPolling'
[Fatal Error] P1202_Im.dpr(14): Could not compile used unit 'P1202_Scan.pas'
Что это?
Anatoly Podgoretsky (2007-04-08 13:23:00) [1]> Чайник (08.04.2007 13:16:16) [16]
А Ctrl+F пользоваться не умеешь
Чайник (2007-04-08 13:16:00) [2]Всем спасибо! Каюсь - это полностью мой идиотизм. Действительно, было еще одно объявление AdsPolling - в 16 строке на 200 позизии - т.е. далеко вправо за пределами экрана. Вот пример всем мальчикам и девочкам бездумного использования Copy/Paste.
Германн (2007-04-08 13:01:00) [3]
> Аноним (08.04.07 12:23) [14]
>
> Нет, если бы он переопределял тип psingle или word, то текст
> ошибки компилера был бы другой
> а у него
А ты сам то проверь. Именно такой текст ошибки и есть при переопределении. Слово в слово.
_Аноним (2007-04-08 12:23:00) [4]
> DrPass ©
Нет, если бы он переопределял тип psingle или word, то текст ошибки компилера был бы другой
а у него
[Error] P1202_Scan.pas(70): Previous declaration of 'P1202_AdsPolling' was not marked with the 'overload' directive
[Error] P1202_Scan.pas(16): Unsatisfied forward or external declaration: 'P1202_AdsPolling'
однозначно еще есть строка в коде с объявлением P1202_AdsPolling
DrPass (2007-04-08 10:18:00) [5]
> Германн © (08.04.07 00:47) [11]
Это понятно :)
Скорее всего, он где-то по коду переопределяет тип параметров, psingle или word.
Хотя в очень редких случаях и у Delphi бывают глюки
Плохиш (2007-04-08 01:14:00) [6]
> Чайник © (06.04.07 03:38)
> Что за глюк (у меня или у Дельфи)?:
Глюк у тебя. Тут без вариантов.
PS. Неужели так трудно поиск по своему коду сделать?
Германн (2007-04-08 00:47:00) [7]
> DrPass © (07.04.07 21:51) [10]
> Ну так что ж ты хочешь, дорогой?
>
Ошибка с этим не связана.
DrPass (2007-04-07 21:51:00) [8]
> Опечатка: в implementation декларации stdCall нет:
>
> function P1202_AdsPolling(fAdVal: PSingle; wNum: Word):
> Word;
> begin
>
> end;
Ну так что ж ты хочешь, дорогой?
Belorus (2007-04-07 11:08:00) [9]Ошибка в 16 строке, это почти то же самое что и в 17... Подозрительный код..
Германн (2007-04-07 01:35:00) [10]
> Чайник © (06.04.07 03:47) [2]
>
> Ну нет уменя никакой 'Previous declaration'
"Previous declaration" в данном случае это объявление функции в секцииinterface.
Германн (2007-04-07 01:33:00) [11]
> Чайник © (06.04.07 03:38)
>
> Что за глюк (у меня или у Дельфи)?:
>
> Есть юнит, в секции interface объявляю:
>
> unit P1202_Scan;
>
> interface
>
> uses
> Windows, SysUtils, Classes;
>
> // Function of AD/DA
> function P1202_AdsPolling(fAdVal: PSingle; wNum: Word):
> Word; stdCall;
>
> в секции implementation соответсвенно:
>
> function P1202_AdsPolling(fAdVal: PSingle; wNum: Word):
> Word; stdCall;
> begin
> ...
> end;
>
> При попытке компиляции выдает:
> [Error] P1202_Scan.pas(70): Previous declaration of 'P1202_AdsPolling'
> was not marked with the 'overload' directive
> [Error] P1202_Scan.pas(16): Unsatisfied forward or external
> declaration: 'P1202_AdsPolling'
> [Fatal Error] P1202_Im.dpr(14): Could not compile used
> unit 'P1202_Scan.pas'
>
> Что это?
>
Имхо, ты в своём коде где-то "переопределил", скорее всего, тип PString. Ну или Word.
Leonid Troyanovsky (2007-04-07 00:31:00) [12]
> Чайник © (06.04.07 03:38)
> // Function of AD/DA
> function P1202_AdsPolling(fAdVal: PSingle; wNum: Word):
> Word; stdCall;
function P1202_AdsPolling(fAdVal: PSingle; wNum: Word): Word; forward;
--
Regards, LVT.
_Аноним (2007-04-06 23:13:00) [13]Ну вариантов быть не может - проверь, в 17 строке у тебя объявлена еще одна P1202_AdsPolling
Думкин (2007-04-06 07:14:00) [14]по написаному вами тут выходит, что ошибка должна вылазить в 9-й строке, а у вас указывается 16.
Следовательно. как и всегда - ошибка в 17-й строке.
Думкин (2007-04-06 07:06:00) [15]Раз говорит, значит есть основания. У меня этот код с теми же названиями откомпилился на ура.
Чайник (2007-04-06 03:47:00) [16]Ну нет уменя никакой 'Previous declaration' и не собираюсь я никого 'overload' ! Такое впечатление, что компилятор названия функций в interface и interface воспринимает, как разные и не сопоставляет. Что за глюк?!
Чайник (2007-04-06 03:43:00) [17]Опечатка: в implementation декларации stdCall нет:
function P1202_AdsPolling(fAdVal: PSingle; wNum: Word): Word;
begin
end;