Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

zar niko ne zna da napravi DLL?

[es] :: C/C++ programiranje :: zar niko ne zna da napravi DLL?

[ Pregleda: 2165 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mvlado
Vladimir Milatovic

Član broj: 6491
Poruke: 89
*.cg.yu



Profil

icon zar niko ne zna da napravi DLL?18.05.2003. u 19:01 - pre 254 meseci
Ovaj kod izlista u jednom texbox-u UserName i IP broj svih
korsinika koji su logovani na taj racunar.

Potrebno mi je da se od ovog koda napravi dll fajl, kako bi mogao
da ga koristim u VB,
sa jednom funkciom koja bi se zvala npr.

GetAllUsers (UserNo, Users)

i koja bi vracala dva parametra,
1) Broj korisnika
2) Pokazivac na Niz recorda u obliku
UserName as String
Ip as String

Pogledati ovaj text: Handling VB strings (as part of an array of UDT)
http://www.codeguru.com/dll/vbString.shtml

Ako neko ima bolje resenje neka uradi kako misli da treba
pa naka detaljno opise resenje.

Nebi bilo lose da neko malo detaljnije prokomentarise ovaj kod.

Kompletan projekat se moze skinuti sa ove adrese:
www.codeguru.com/network/IPAddress.zip

Kod:

1) Include winsock2.h

2) In the Menu, go to Project-->Settings and in the Link tab,
you can see a text box named Object/Library Modules.
In that, add ws2_32.lib mpr.lib to the existing entries there.
Those 2 libraries have to be added for this code snippet to
compile without any linker errors.


CString strTemp;
struct hostent *host;
struct in_addr *ptr; // To retrieve the IP Address

DWORD dwScope = RESOURCE_CONTEXT;
NETRESOURCE *NetResource = NULL;
HANDLE hEnum;
WNetOpenEnum( dwScope, NULL, NULL, NULL, &hEnum );

WSADATA wsaData;
WSAStartup(MAKEWORD(1,1),&wsaData);

if ( hEnum )
{
DWORD Count = 0xFFFFFFFF;
DWORD BufferSize = 2048;
LPVOID Buffer = new char[2048];
WNetEnumResource( hEnum, &Count, Buffer, &BufferSize );
NetResource = (NETRESOURCE*)Buffer;

char szHostName[200];

for ( unsigned int i = 0; i < BufferSize/sizeof(NETRESOURCE);
i++, NetResource++ )
{
if ( NetResource->dwUsage == RESOURCEUSAGE_CONTAINER &&
NetResource->dwType == RESOURCETYPE_ANY )
{
if ( NetResource->lpRemoteName )
{
CString strFullName = NetResource->lpRemoteName;
if ( 0 == strFullName.Left(2).Compare("\\\\") )
strFullName = strFullName.Right(strFullName.GetLength()-2);
gethostname( szHostName, strlen( szHostName ) );
host = gethostbyname(strFullName);
if(host == NULL) continue;
ptr = (struct in_addr *) host->h_addr_list[0];

// Eg. 211.40.35.76 split up like this.
int a = ptr->S_un.S_un_b.s_b1; // 211
int b = ptr->S_un.S_un_b.s_b2; // 40
int c = ptr->S_un.S_un_b.s_b3; // 35
int d = ptr->S_un.S_un_b.s_b4; // 76

strTemp.Format("%s --> %d.%d.%d.%d",strFullName,a,b,c,d);
AfxMessageBox(strTemp);
}
}
}
delete Buffer;
WNetCloseEnum( hEnum );
}

WSACleanup();

// End of Code
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: zar niko ne zna da napravi DLL?22.05.2003. u 11:09 - pre 254 meseci
Ne lista u jednom text box-u, vec koliko ja "kapiram" C/C++ kod ovo ce prikazati message box-ove, jedan po jedan redom...
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

Jovan Marjanovic
HP GmbH
Stuttgart

Član broj: 942
Poruke: 456
*.net.external.hp.com

ICQ: 42
Sajt: www.hp.com


Profil

icon Re: zar niko ne zna da napravi DLL?22.05.2003. u 11:23 - pre 254 meseci
pogledaj temu : "dll-ovi... parametri funkcije" gde sam upravo napisao par primera za pisanje dll-a i mapiranje funkcije iz dll-a. Naravno, ako ces koristiti VB, onda zaboravi na prvi primer, ali drugi ti pokazuje kao da pravilno eksportujes funkciju iz dlla.
Sto se tice tvog koda, najbolje da sve podatke pakujes u pointer na array, i da tvoja funkcija to sve lepo vrati programu koji je poziva, i da odatle u VB-u preparsas taj array, i stavis sve podatke u neki text box, ili sta god hoces.
Za automatsko dobijanje Super Moderatorskog statusa na Elitesecurity forumima pritisnite Alt+F4
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: zar niko ne zna da napravi DLL?26.05.2003. u 19:25 - pre 254 meseci
Naravno, nas dragi mvlada je jedan od onih "gotovana" koji vole da im se sve servira, pa evo:
http://www.eee.bham.ac.uk/collinst/VisualBasic-VisualC-DLL.html

P.S. jedan GOOGLE search je dao ovaj link medju prvima - string koji sam trazio je dll c++ visual basic source
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

[es] :: C/C++ programiranje :: zar niko ne zna da napravi DLL?

[ Pregleda: 2165 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.