#include <windows.h>
#include <stdio.h>
int main()
{
DWORD dwResult;
HANDLE hEnum;
DWORD cbBuffer = 16384;
DWORD cEntries = 0xFFFFFFFF;
LPNETRESOURCE lpnrDrv;
DWORD i;
dwResult = WNetOpenEnum( RESOURCE_CONNECTED,
RESOURCETYPE_ANY,
0,
NULL,
&hEnum );
if (dwResult != NO_ERROR)
{
printf( "\nCannot enumerate network drives.\n" );
return 0;
}
printf( "\nNetwork drives:\n\n" );
do
{
lpnrDrv = (LPNETRESOURCE) GlobalAlloc( GPTR, cbBuffer );
dwResult = WNetEnumResource( hEnum, &cEntries, lpnrDrv, &cbBuffer
);
if (dwResult == NO_ERROR)
{
for( i = 0; i < cEntries; i++ )
{
if( lpnrDrv.lpLocalName != NULL )
{
printf( "%s\t%s\n", lpnrDrv.lpLocalName,
lpnrDrv.lpRemoteName );
}
}
}
else if( dwResult != ERROR_NO_MORE_ITEMS )
{
printf( "Cannot complete network drive enumeration" );
GlobalFree( (HGLOBAL) lpnrDrv );
break;
}
GlobalFree( (HGLOBAL) lpnrDrv );
}
while( dwResult != ERROR_NO_MORE_ITEMS );
WNetCloseEnum(hEnum);
}
Ошибки которые выскакивают:
[Linker error] undefined reference to `WNetOpenEnumA@20'
[Linker error] undefined reference to `WNetEnumResourceA@16'
[Linker error] undefined reference to `WNetCloseEnum@4'
ld returned 1 exit status
Помогите разобраться с библиотекой
Делаю курсач в Dev C++ версия 4.9.9.2, выскакиевает ошибка при компиляции, предпологаю что не подключены библиотеки но не уверен... Подскажите пожалуйста :(
во вторых....
Цитата:
5 D:\Documents and Settings\Admin\Рабочий стол\Безымянный1.cpp `main' must return `int'
компилятор пишет, что main должна возвращать int... очевидно Dev C++ использует в качестве компилятора gcc, так?
если так, что вместо void main() нужно int main() и сделать return 0; в конце программы.
нутк пиши, что выводит компилятор... экстрасенсы все спят уже...
Код:
[Linker error] undefined reference to `WNetOpenEnumA@20'
[Linker error] undefined reference to `WNetEnumResourceA@16'
[Linker error] undefined reference to `WNetCloseEnum@4'
ld returned 1 exit status
[Linker error] undefined reference to `WNetEnumResourceA@16'
[Linker error] undefined reference to `WNetCloseEnum@4'
ld returned 1 exit status
Цитата:
[Linker error] undefined reference to `WNetOpenEnumA@20'
не видит WNetOpenEnumA... судя по MSDN ( http://msdn.microsoft.com/en-us/library/aa385478(VS.85).aspx ) для неё нужно подключать хидер Winnetwk.h
подключай #include <Winnetwk.h> вообщем...
с хидером ничего не изменилось
попробовал добавить библиотеку #include <Mpr.lib>
ошибки все исчезли но путь к ней не могу задать, вернее не совсем понимаю где ставить
зы. заранее извиняюсь если где туплю, работаю обычно в делфи, за си недавно взялся. Язык интересный, но много пробелов у меня еще, пытаюсь наверствывать
http://www.uniqueness-template.com/devcpp/
Project Option -> Parametrs -> Linker
туда нужно добавить эту библиотеку... а вот путь не подскажу увы...
там картинка есть ещё... на ней есть скажем -lbgi это равносильно libbgi.lib
попробуй добавить туда просто Mpr.lib
библиотеку нашел
она наз libmpr.a тут вроде
подключил (#include <libmpr.a>)
пишет \Documents and Settings\Admin\Рабочий стол\ololo\Безымянный1.cpp D:\Documents and Settings\Admin\Рабочий стол\ololo\D libmpr.a: No such file or directory.
мол не находит, уже отдельно перенес ее в папку с проектом
1) подключить её хидер(я так понимаю что в этом случае это Winnetwk.h, т.е. в исходный код добавить #include <Winnetwk.h>)
2) подключить саму библиотеку... если библиотека называется libmpr.a, то тебе нужно добавить её в Project Option -> Parametrs -> Linker как -lmpr
интересное одно) при выполнение exe моргает на доли секунды и исчезает...
не срабатывает вывод почему то
Код:
#include <windows.h>
#include <stdio.h>
#include <Winnetwk.h>
#include <cstdio>
int main()
{ char c1;
DWORD dwResult;
HANDLE hEnum;
DWORD cbBuffer = 16384;
DWORD cEntries = 0xFFFFFFFF;
LPNETRESOURCE lpnrDrv;
DWORD i;
dwResult = WNetOpenEnum( RESOURCE_CONNECTED,
RESOURCETYPE_ANY,
0,
NULL,
&hEnum );
if (dwResult != NO_ERROR)
{
printf( "\nCannot enumerate network drives.\n" );
return 0;
}
printf( "\nNetwork drives:\n\n" );
do
{
lpnrDrv = (LPNETRESOURCE) GlobalAlloc( GPTR, cbBuffer );
dwResult = WNetEnumResource( hEnum, &cEntries, lpnrDrv, &cbBuffer
);
if (dwResult == NO_ERROR)
{
for( i = 0; i < cEntries; i++ )
{
if( lpnrDrv.lpLocalName != NULL )
{
printf( "%s\t%s\n", lpnrDrv.lpLocalName,
lpnrDrv.lpRemoteName );
}
}
}
else if( dwResult != ERROR_NO_MORE_ITEMS )
{
printf( "Cannot complete network drive enumeration" );
GlobalFree( (HGLOBAL) lpnrDrv );
break;
}
GlobalFree( (HGLOBAL) lpnrDrv );
}
while( dwResult != ERROR_NO_MORE_ITEMS );
WNetCloseEnum(hEnum);
}
printf( "input char >" );
scanf( "%c", &c1 );
printf( " %c\n", c1 );
}
#include <stdio.h>
#include <Winnetwk.h>
#include <cstdio>
int main()
{ char c1;
DWORD dwResult;
HANDLE hEnum;
DWORD cbBuffer = 16384;
DWORD cEntries = 0xFFFFFFFF;
LPNETRESOURCE lpnrDrv;
DWORD i;
dwResult = WNetOpenEnum( RESOURCE_CONNECTED,
RESOURCETYPE_ANY,
0,
NULL,
&hEnum );
if (dwResult != NO_ERROR)
{
printf( "\nCannot enumerate network drives.\n" );
return 0;
}
printf( "\nNetwork drives:\n\n" );
do
{
lpnrDrv = (LPNETRESOURCE) GlobalAlloc( GPTR, cbBuffer );
dwResult = WNetEnumResource( hEnum, &cEntries, lpnrDrv, &cbBuffer
);
if (dwResult == NO_ERROR)
{
for( i = 0; i < cEntries; i++ )
{
if( lpnrDrv.lpLocalName != NULL )
{
printf( "%s\t%s\n", lpnrDrv.lpLocalName,
lpnrDrv.lpRemoteName );
}
}
}
else if( dwResult != ERROR_NO_MORE_ITEMS )
{
printf( "Cannot complete network drive enumeration" );
GlobalFree( (HGLOBAL) lpnrDrv );
break;
}
GlobalFree( (HGLOBAL) lpnrDrv );
}
while( dwResult != ERROR_NO_MORE_ITEMS );
WNetCloseEnum(hEnum);
}
printf( "input char >" );
scanf( "%c", &c1 );
printf( " %c\n", c1 );
}
62 D:\Documents and Settings\Admin\Рабочий стол\ppc\main.cpp expected constructor, destructor, or type conversion before '(' token
62 D:\Documents and Settings\Admin\Рабочий стол\ppc\main.cpp expected `,' or `;' before '(' token
на последних строках эти ошибки, что-то ему не нравится(
Код:
#include <windows.h>
#include <stdio.h>
#include <Winnetwk.h>
#include <cstdio>
int main()
{ char c1;
DWORD dwResult;
HANDLE hEnum;
DWORD cbBuffer = 16384;
DWORD cEntries = 0xFFFFFFFF;
LPNETRESOURCE lpnrDrv;
DWORD i;
dwResult = WNetOpenEnum( RESOURCE_CONNECTED,
RESOURCETYPE_ANY,
0,
NULL,
&hEnum );
if (dwResult != NO_ERROR)
{
printf( "\nCannot enumerate network drives.\n" );
return 0;
}
printf( "\nNetwork drives:\n\n" );
do
{
lpnrDrv = (LPNETRESOURCE) GlobalAlloc( GPTR, cbBuffer );
dwResult = WNetEnumResource( hEnum, &cEntries, lpnrDrv, &cbBuffer
);
if (dwResult == NO_ERROR)
{
for( i = 0; i < cEntries; i++ )
{
if( lpnrDrv.lpLocalName != NULL )
{
printf( "%s\t%s\n", lpnrDrv.lpLocalName,
lpnrDrv.lpRemoteName );
}
}
}
else if( dwResult != ERROR_NO_MORE_ITEMS )
{
printf( "Cannot complete network drive enumeration" );
GlobalFree( (HGLOBAL) lpnrDrv );
break;
}
GlobalFree( (HGLOBAL) lpnrDrv );
}
while( dwResult != ERROR_NO_MORE_ITEMS );
WNetCloseEnum(hEnum);
printf( "input char >" );
scanf( "%c", &c1 );
printf( " %c\n", c1 );
return 0;
}
#include <stdio.h>
#include <Winnetwk.h>
#include <cstdio>
int main()
{ char c1;
DWORD dwResult;
HANDLE hEnum;
DWORD cbBuffer = 16384;
DWORD cEntries = 0xFFFFFFFF;
LPNETRESOURCE lpnrDrv;
DWORD i;
dwResult = WNetOpenEnum( RESOURCE_CONNECTED,
RESOURCETYPE_ANY,
0,
NULL,
&hEnum );
if (dwResult != NO_ERROR)
{
printf( "\nCannot enumerate network drives.\n" );
return 0;
}
printf( "\nNetwork drives:\n\n" );
do
{
lpnrDrv = (LPNETRESOURCE) GlobalAlloc( GPTR, cbBuffer );
dwResult = WNetEnumResource( hEnum, &cEntries, lpnrDrv, &cbBuffer
);
if (dwResult == NO_ERROR)
{
for( i = 0; i < cEntries; i++ )
{
if( lpnrDrv.lpLocalName != NULL )
{
printf( "%s\t%s\n", lpnrDrv.lpLocalName,
lpnrDrv.lpRemoteName );
}
}
}
else if( dwResult != ERROR_NO_MORE_ITEMS )
{
printf( "Cannot complete network drive enumeration" );
GlobalFree( (HGLOBAL) lpnrDrv );
break;
}
GlobalFree( (HGLOBAL) lpnrDrv );
}
while( dwResult != ERROR_NO_MORE_ITEMS );
WNetCloseEnum(hEnum);
printf( "input char >" );
scanf( "%c", &c1 );
printf( " %c\n", c1 );
return 0;
}
прога запускается но выводит только
Network Drivers:
Input Char >
все, сетевые подключения не отображает.... почему понять не могу, где промах допустил в самом коде...
http://forum.codenet.ru/showthread.php?t=27443 вот тут работающий код с WNetOpenEnum (со слов автора поста, сам не проверял)
посмотри, подгони под свои нужды)
посмотри, подгони под свои нужды)