C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Вызов подпрограммы, Ошибка при вызове...
sim
Отправлено: 19.03.2004, 00:52


Дежурный стрелочник

Группа: Участник
Сообщений: 39



Есть такая программа:

int WFile(AnsiString aMes)
{iIfFileHandle=FileWrite(iFileHandle, aMes.c_str(), aMes.Length());
if(iIfFileHandle!=aMes.Length())
{Application->MessageBox("Не удалось записать в файл.","Ошибка",MB_ICONSTOP);
return 1;
}
return 0;
}

Пытаюсь ее вызвать:

AnsiString aMes=" Ку-ку!";
iErr=WFile(aMes);
if(iErr==1)
{FileClose(iFileHandle);
return;
}

Выскакивает ошибка:
[C++ Error] Unit1.cpp(38): E2268 Call to undefined function 'WFile'.
[C++ Warning] Unit1.cpp(38): W8074 Structure passed by value.
exp
Отправлено: 19.03.2004, 01:12


Мастер участка

Группа: Участник
Сообщений: 304



У меня твой код пахает.
CODE

int iFileHandle=0;

int WFile(AnsiString aMes)
{
int iIfFileHandle=FileWrite(iFileHandle, aMes.c_str(), aMes.Length());
if(iIfFileHandle!=aMes.Length())
{
Application->MessageBox("?? ??????? ???????? ? ????.","??????",MB_ICONSTOP);
return 1;
}
return 0;
}
//------------------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString aMes=" ??-??!";
int iErr=WFile(aMes);
if(iErr==1)
{FileClose(iFileHandle);
return;
}
}
sim
Отправлено: 22.03.2004, 21:35


Дежурный стрелочник

Группа: Участник
Сообщений: 39



Вот ...... а уменя нет. А ведь что-то элементарно.
Roman
Отправлено: 23.03.2004, 10:01


Дежурный стрелочник

Группа: Участник
Сообщений: 78



Ошибка
[C++ Error] Unit1.cpp(38): E2268 Call to undefined function 'WFile'.
выскакивает если не прописал свою функцию в заголовочном файле.

Попробуй добавить в заголовочный файл:

int WFile(AnsiString);
sim
Отправлено: 26.03.2004, 09:46


Дежурный стрелочник

Группа: Участник
Сообщений: 39



Причина была в следующем:
_Fast call TForm.........
{
}

int iFileHandle; // ***************
int WFile(AnsiString aMes)
{iIfFileHandle=FileWrite(iFileHandle, aMes.c_str(), aMes.Length());
if(iIfFileHandle!=aMes.Length())
{Application->MessageBox("Не удалось записать в файл.","Ошибка",MB_ICONSTOP);
return 1;
}
return 0;
}

_fast call Button1.....
{
int iFileHandle;
AnsiString aMes=" Ку-ку!";
iErr=WFile(aMes);
if(iErr==1)
{FileClose(iFileHandle);
return;
}

Достаточно было добавить строку со звездочками и все заработало.Хотя для чего надо было объявлять переменную, вопрос?Онаже объявлена перед вызовом.

Вернуться в Вопросы программирования в C++Builder