Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка FFFFFFFFFF [D6, XP]


Страницы:   1 2

ctudent ©   (2006-04-10 18:52:00) 

Здраствуйте уважаемые мастера дельфи. Скажите пожалуйста как избежать ошибки FFFFFFFFFF. Она появляется когда происходит вызов функции пропись из DLL.


valdemot   (2006-04-11 22:02:00) [1]


> Desdechado ©   (11.04.06 13:15) [22]
> связывание динамическое или статическое?

Динамическое


Fay   (2006-04-11 15:20:00) [2]

> for i:= lto L do
Это чё?


Desdechado   (2006-04-11 13:15:00) [3]

связывание динамическое или статическое?


Сергей М.   (2006-04-11 12:49:00) [4]


> valdemot ©   (11.04.06 12:45) [20]


Строчка

if Pos(S[i], '0123456789') = 0 then break;

насколько это понятно из твоего сумбурного объяснения, к вызову ДЛЛ отношения вообще не имеет.


valdemot   (2006-04-11 12:45:00) [5]


> > И самым первым прописывал?


Да.


Сергей М.   (2006-04-11 12:44:00) [6]


> И самым первым прописывал?


Опять "Тихо сам с собою .." (С) .... )


valdemot   (2006-04-11 12:43:00) [7]


> > Его нужно прописывать не иначе как в uses обоих dpr !
>
> И к тому же самым первым.


И самым первым прописывал?
А может ли проблема быть из-а того что у меня в проге вызвается три ДЛЛ.


Сергей М.   (2006-04-11 12:42:00) [8]


> Во обоих прописал?


> Код стопорится на этой строке?


Ты кого спрашиваешь-то ? Самого себя что ли ?)


valdemot   (2006-04-11 12:40:00) [9]


> Всё равно не помогает?
>
>
> Да кто ж знает, помогает оно тебе или не помогает)
>
>
> > Прописывал ShareMem
>
>
> Его нужно прописывать не иначе как в uses обоих dpr !


Во обоих прописал? Изменений НОЛЬ!

Код стопорится на этой строке?

if Pos(S[i], '0123456789') = 0 then break;


Плохиш   (2006-04-11 12:38:00) [10]


> Его нужно прописывать не иначе как в uses обоих dpr !

И к тому же самым первым.


Сергей М.   (2006-04-11 12:33:00) [11]


> Всё равно не помогает?


Да кто ж знает, помогает оно тебе или не помогает)


> Прописывал ShareMem


Его нужно прописывать не иначе как в uses обоих dpr!


valdemot   (2006-04-11 12:27:00) [12]

в длл
function GeniCase(const S : String; C1,C2,C3 : String): string; export;
function NumeralToPhrase(const S : String) : String; export;
function Trim(const S: string): string; export;

в unit1.pas

var
  L,i : Integer;
  S   : string;
begin
S:=suidbEdit3.Text;
    L:=Length(S);

    for i:=l to L do
        if Pos(S[i], '0123456789') = 0 then break;
    suiEdit17.Text:=( NumeralToPhrase(suidbEdit3.Text)+' '+
GeniCase(suidbEdit3.Text,
                             edit1.Text,
                             Edit2.Text,
                              Edit3.Text)+'р.');

Прописывал ShareMem. Всё равно не помогает?


valdemot   (2006-04-11 12:27:00) [13]

в длл
function GeniCase(const S : String; C1,C2,C3 : String): string; export;
function NumeralToPhrase(const S : String) : String; export;
function Trim(const S: string): string; export;

в unit1.pas

var
  L,i : Integer;
  S   : string;
begin
S:=suidbEdit3.Text;
    L:=Length(S);

    for i:=l to L do
        if Pos(S[i], '0123456789') = 0 then break;
    suiEdit17.Text:=( NumeralToPhrase(suidbEdit3.Text)+' '+
GeniCase(suidbEdit3.Text,
                             edit1.Text,
                             Edit2.Text,
                              Edit3.Text)+'р.');


Amoeba   (2006-04-11 12:07:00) [14]

Есть сильное подозрение, что автор вопроса просто не удосужился прочитать тот пространный комментарий, что Delphi сама поместила в начале сгенерированного ей файла проекта DLL этой.


Desdechado   (2006-04-11 11:40:00) [15]

StringReplace(E.Message, 'FFFFFFFF', 'BEBEBEBE', []));


Юрий Зотов   (2006-04-11 01:23:00) [16]

>  ctudent ©   (10.04.06 18:52)  

Скорее всего, Вы неверно описали ошибку. Это не ошибка FFFFFFFFFF, а ошибка ПРИ ОБРАЩЕНИИ ПО АДРЕСУ FFFFFFFFFF - поэтому народ и смеется.

Ошибки такого рода обычно возникают при неправильной работе с памятью. Но не видя Вашего кода ничего более точного, конечно, не скажешь. Покажите код функции из DLL и код ее вызова, тогда причина, скорее всего, прояснится.


Virgo_Style   (2006-04-10 22:21:00) [17]

Джо ©   (10.04.06 22:09) [7]

или так (с)


Джо   (2006-04-10 22:09:00) [18]

> [6] Virgo_Style ©   (10.04.06 22:07)
> Меня вот осенило - может, это с передачей строк в/из dll
> связано?

А меня осенило, что может быть в функции — ошибка? :)


Virgo_Style   (2006-04-10 22:07:00) [19]

в вопросе указано, что ошибка возникает при вызове функции, но не указано, что функция должна непременно быть вызвана; отсюда вывод - ошибки можно избежать, не вызывая указанную функцию.

Меня вот осенило - может, это с передачей строк в/из dll связано?


Leonid Troyanovsky   (2006-04-10 22:00:00) [20]


> ctudent ©   (10.04.06 18:52)  
> как избежать ошибки FFFFFFFFFF. Она появляется когда происходит
> вызов функции пропись из DLL.

Максимум, чего  можно избежать -  FFFFFFFFF.

--
Regards, LVT.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо