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

 
InternetGetConnectedState, Почему ругается Linker ?
Aptem
Отправлено: 20.06.2004, 13:54


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

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



Привет, всем.

Использую функцию InternetGetConnectedState для проверки соединения с Интернетом. Но как только осуществляю компиляцию, Linker выдает такую ошибку:
CODE

[Linker Error] Unresolved external 'InternetGetConnectedState' referenced from D:\PROG\MY APPLICATION\MAIN.OBJ


Почитав про эту функцию на MSDN, то понял, что она находится в файле Wininet.lib. Может его нужно подключить, но как ?

Вот код моей функции
CODE

void __fastcall TForm1::Button1Click(TObject *Sender)
{
 bool state;
 LPDWORD flags;

 state = InternetGetConnectedState (flags,0);

  if ( state ) ShowMessage ( "OK" );
  else ShowMessage ( "NO" );
}


Помогите кто чем может !!! Большое спасибо !!!
klen
Отправлено: 20.06.2004, 18:00


Машинист паровоза

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



Конечно он будет ругатся, тело функции не определено в твоей программе. Чтоб линкер мог связать вызовы функции с точкой ее входа........бля, короче в менеджере проекта подключи библиотеку эту, все мышкой делается.
Gedeon
Отправлено: 21.06.2004, 20:13


Ветеран

Группа: Модератор
Сообщений: 1742



Вот поиском хорошо как пользоваться.
Aptem
Отправлено: 30.06.2004, 12:05


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

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



Вот код:

CODE

#pragma comment ( lib, "lib\wininet.lib" )
#include <wininet.h>


...

CODE

void __fastcall TForm1::Button1Click(TObject *Sender)
{
bool state;
LPDWORD flags;

state = InternetGetConnectedState (flags,0);

 if ( state ) ShowMessage ( "OK" );
 else ShowMessage ( "NO" );
}


Но почему то всегда показывается "NO", то есть функция всегда возвращает false !

Что делать ???
Father
  Отправлено: 30.06.2004, 14:01


Ученик-кочегар

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



У тебя первый параметр д.б. адрес переменной типа DWORD.
Ты его таким и объявляешь (указателем, кот. указывает, ксати, черт знает куда), а памяти под него не выделяешь. Вобщем, д.б. так:
CODE
       bool state;
       DWORD flags;

       state = InternetGetConnectedState (&flags,0);
       if ( state ) ShowMessage ( "OK" + str);
       else ShowMessage ( "NO" );
Aptem
Отправлено: 04.07.2004, 07:55


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

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



QUOTE (Father @ 30/06/2004, 15:03)
Вобщем, д.б. так:

Что такое д.б. ??? Это ругательство такое или что ???

Это я шучу конечно, но вы были правы, память забыл выделить !!!! Спасибо за помощь !

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