Hej
Jeg er i gang med at prøve at lave et program i C++ der til at starte med skal kunne oprette forbindelse til et netværksdrev.
På msdn fandt jeg frem til at skulle bruge funktionen WNetAddConnection2 og jeg har derfor prøvet på at compile eksemplet fra msdn for at have noget at starte ud fra.
Jeg er desværre stødt på nogle problemer jeg håber i kan hjælpe med?
Jeg har prøvet at linke til mpr.lib men er ikke sikker på jeg gør det rigtigt, nogen der kan fortælle hvordan jeg skal gøre?
Jeg bruger Codeblocks og får følgende fejl når jeg prøver at builde:
||=== Build: Debug in prove (compiler: GNU GCC Compiler) ===|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.8.1\..\..\..\libmingw32.a(main.o):main.c:(.text.startup+0xa7)||undefined reference to `WinMain@16'|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
Koden:
- #ifndef UNICODE
- #define UNICODE
- #endif
- #pragma comment(lib, "mpr.lib")
-
- #include <windows.h>
- #include <tchar.h>
- #include <stdio.h>
- #include <Winnetwk.h>
-
- // Need to link with Netapi32.lib and Mpr.lib
-
- int wmain(int argc, wchar_t * argv[])
- {
-
- DWORD dwRetVal;
-
- NETRESOURCE nr;
- DWORD dwFlags;
-
- if (argc != 5) {
- wprintf(L"Usage: %s <localname> <remotename> <username> <password>\n",
- argv[0]);
- wprintf(L" %s X: \\\\contoso\\public testuser testpasswd\n",
- argv[0]);
- exit(1);
- }
-
- wprintf(L"Calling WNetAddConnection2 with\n");
- wprintf(L" lpLocalName = %s\n", argv[1]);
- wprintf(L" lpRemoteName = %s\n", argv[2]);
- wprintf(L" lpUsername = %s\n", argv[3]);
- wprintf(L" lpPassword = %s\n", argv[4]);
-
- // Zero out the NETRESOURCE struct
- memset(&nr, 0, sizeof (NETRESOURCE));
-
- // Assign our values to the NETRESOURCE structure.
-
- nr.dwType = RESOURCETYPE_ANY;
- nr.lpLocalName = argv[1];
- nr.lpRemoteName = argv[2];
- nr.lpProvider = NULL;
-
- // Assign a value to the connection options
- dwFlags = CONNECT_UPDATE_PROFILE;
- //
- // Call the WNetAddConnection2 function to assign
- // a drive letter to the share.
- //
- dwRetVal = WNetAddConnection2(&nr, argv[4], argv[3], dwFlags);
- //
- // If the call succeeds, inform the user; otherwise,
- // print the error.
- //
- if (dwRetVal == NO_ERROR)
- wprintf(L"Connection added to %s\n", nr.lpRemoteName);
- else
- wprintf(L"WNetAddConnection2 failed with error: %u\n", dwRetVal);
-
- exit(1);
- }
Indlæg senest redigeret d. 17.02.2014 16:13 af Bruger #12265