Oto moja aplikacja exe + kilka plikow dll:
Chciał bym aby wszystkie pliki .dll były wywoływane z folderu "test", jak to zrobić?
Oto moja aplikacja exe + kilka plikow dll:
Chciał bym aby wszystkie pliki .dll były wywoływane z folderu "test", jak to zrobić?
trzeba je tam przenieść i dodać do zmiennej PATH ścieżkę do tego folderu. Jednak może to nie zadziałać jeśli dll są ładowane dynamicznie i jest podawana do nich ścieżka bezwzględna.
Jest api na ustawienie lokalizacji dll-ek.
https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-setdlldirectoryw
The directory to be added to the search path. If this parameter is an empty string (""), the call removes the current directory from the default DLL search order. If this parameter is NULL, the function restores the default search order.
https://docs.microsoft.com/pl-pl/windows/desktop/api/libloaderapi/nf-libloaderapi-adddlldirectory
Poza tym, jeśli ładujesz dll-ki dynamicznie, możesz użyć ścieżki relatywnej lub bezwzględnej.
Użyj statycznego linkowania i nie martw się o dll'ki obok aplikacji ;)
MarekR22 napisał(a):
Jest api na ustawienie lokalizacji dll-ek.
https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-setdlldirectorywThe directory to be added to the search path. If this parameter is an empty string (""), the call removes the current directory from the default DLL search order. If this parameter is NULL, the function restores the default search order.
https://docs.microsoft.com/pl-pl/windows/desktop/api/libloaderapi/nf-libloaderapi-adddlldirectory
Poza tym, jeśli ładujesz dll-ki dynamicznie, możesz użyć ścieżki relatywnej lub bezwzględnej.
Potrzebuje jakiegos przykładu pownieważ nie jestem dobrym programerem, oto co dodalem w main.cpp
/*
* Copyright (c) 2010-2017 OTClient <https://github.com/edubart/otclient>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include <framework/core/application.h>
#include <framework/core/resourcemanager.h>
#include <framework/luaengine/luainterface.h>
#include <client/client.h>
int main(int argc, const char* argv[])
{
std::vector<std::string> args(argv, argv + argc);
// setup application name and version
g_app.setName("app");
g_app.setCompactName("app");
g_app.setVersion(VERSION);
// initialize application framework and otclient
g_app.init(args);
g_client.init(args);
// find script init.lua and run it
if(!g_resources.discoverWorkDir("init.lua"))
g_logger.fatal("Unable to find work directory, the application cannot be initialized.");
if(!g_lua.safeRunScript("init.lua"))
g_logger.fatal("Unable to run script init.lua!");
// the run application main loop
g_app.run();
// unload modules
g_app.deinit();
// terminate everything and free memory
g_client.terminate();
g_app.terminate();
return 0;
}
BOOL SetDllDirectoryW(
LPCWSTR lpPathName
);
BOOL SetDllDirectoryW(LPCWSTR lpPathName)
{
return 0;
}
Nie wiem co dalej.
Spine napisał(a):
Użyj statycznego linkowania i nie martw się o dll'ki obok aplikacji ;)
Tutaj takze malo mi to mowi.
Tak, też to zauważyłem, że biblioteki ładowane są przed wywołaniem funkcji main.cpp, hmm niby prosta rzecz a nie ma dobrego rozwiazania. Ciagle czekam na propozycje i przeszukuje internet.
Dobrego poradnika jak polaczyć pliki dll z exe też nie znalazłem.
W Visualu można ustawić, które DLL-ki mają być ładowane z opóźnieniem. Jeśli korzystasz z VC++, użyj opcji /DELAYLOAD
.
Patrząc na ten kod wniosek jest prosty.
Myślę ze to nie jest dziwne wymaganie po prostu jest to kwestia estetyki. Wszystkie dll do osobnego folderu lepiej wygląda.
Znalazlem sposob na stackoverflow żeby ustawic delay na ladowanie plikow .dll w visualu a potem uzyc funkcji "SetDllDirectory" lecz nie moge tego zdefiniowac.
Definicje _WIN32_WINNT
daj przed załączeniem windows.h
.
Daj całą apkę z dll'kami do podfolderu. Napisz drugi program, który odpali apkę z podfolderu.
0x666 napisał(a):
Definicje
_WIN32_WINNT
daj przed załączeniemwindows.h
.
Cos tu nie dziala. Wzoruje sie na tym:
https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-setdlldirectorya
Spine napisał(a):
Daj całą apkę z dll'kami do podfolderu. Napisz drugi program, który odpali apkę z podfolderu.
Jest to jakas myśl lecz kombinowana troche
Dlaczego używasz funkcji w wersji ANSI, skoro ścieżka jest unikodowa? Powinieneś użyć SetDllDirectoryW
. Definicję _WIN32_WINNT
i załączenie windows.h
przesuń na sam początek pliku, niewykluczone, że któryś z wcześniejszych plików załącza ten plik systemowy i wtedy redefinicja nic nie zmienia.
W ogóle ten define jest zły. To że na msdn piszą: define _WIN32_WINNT as 0x0502 or later.
to nie znaczy, że to ma wyglądać tak:
#define _WIN32_WINNT as 0x0502
#include <Windows.h>
tylko tak:
#define _WIN32_WINNT 0x0502
#include <Windows.h>
I oczywiście musisz się zastosować do rad z postu poprzedniego.
Nie znam się na Windows, ale z tego co mi wiadomo, to #define _WIN32_WINNT
powinno być ustawione z poziomu projektu. W projekcie się ustawia wspierany wersje Windows-a i to automatycznie powinno ustawić wartość tego makra. Robienie tego bezpośrednio w kodzie to jest złą praktyką inżynierską.
MarekR22 napisał(a):
Nie znam się na Windows, ale z tego co mi wiadomo, to
#define _WIN32_WINNT
powinno być ustawione z poziomu projektu.
Może być, ale nie musi - przez długi czas standardowy projekt generowany przez Visuala definiował to w kodzie w ramach prekompilowanego nagłówka.
Ostatnio coś tam się pozmieniało w szablonie projektu, ale nie pamiętam teraz szczegółów.
W każdym razie makro powinno być przed jakimikolwiek #include'ami, bo w sumie nie wiemy czy #include <jakaśLibka.h>
nie ma w sobie #include <windows.h>
.
Można też posłużyć się gotowymi stałymi, w ten sposób:
#include <SDKDDKVer.h>
#define _WIN32_WINNT _WIN32_WINNT_WINXP
#include <Windows.h>
Dzieki zdefiniowalem juz ta funkcje trzeba bylo dac na sama gore lecz mam inne bledy teraz, gdzies w bibliotekach:
Severity Code Description Project File Line Suppression State
Error (active) E0040 expected an identifier otclient C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\SDK\ScopeCppSDK\SDK\include\shared\ws2def.h 437
Error (active) E0040 expected an identifier otclient C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\SDK\ScopeCppSDK\SDK\include\shared\ws2def.h 438
Error (active) E0040 expected an identifier otclient C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\SDK\ScopeCppSDK\SDK\include\shared\ws2def.h 439
Error (active) E0040 expected an identifier otclient C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\SDK\ScopeCppSDK\SDK\include\shared\ws2def.h 446
Error (active) E0040 expected an identifier otclient C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\SDK\ScopeCppSDK\SDK\include\shared\ws2def.h 452
Error (active) E0040 expected an identifier otclient C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\SDK\ScopeCppSDK\SDK\include\shared\ws2def.h 453
Error (active) E0040 expected an identifier otclient C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\SDK\ScopeCppSDK\SDK\include\shared\ws2def.h 454
Error (active) E0040 expected an identifier otclient C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\SDK\ScopeCppSDK\SDK\include\shared\ws2def.h 470
Error (active) E0040 expected an identifier otclient C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\SDK\ScopeCppSDK\SDK\include\shared\ws2def.h 480
Error (active) E0040 expected an identifier otclient C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\SDK\ScopeCppSDK\SDK\include\shared\ws2def.h 482
Warning C4005 '_WIN32_WINNT': macro redefinition otclient c:\users\tomek\desktop\visual17\otclient-master\src\main.cpp 23
Warning C4005 'AF_IPX': macro redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\shared\ws2def.h 103
Warning C4005 'AF_MAX': macro redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\shared\ws2def.h 136
Warning C4005 'SO_DONTLINGER': macro redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\shared\ws2def.h 185
Error C2011 'sockaddr': 'struct' type redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\shared\ws2def.h 235
Error C2059 syntax error: 'constant' otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\shared\ws2def.h 437
Error C3805 'constant': unexpected token, expected either '}' or a ',' otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\shared\ws2def.h 437
Warning C4005 'IN_CLASSA': macro redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\shared\ws2def.h 572
Warning C4005 'IN_CLASSB': macro redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\shared\ws2def.h 578
Warning C4005 'IN_CLASSC': macro redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\shared\ws2def.h 584
Warning C4005 'INADDR_ANY': macro redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\shared\ws2def.h 595
Warning C4005 'INADDR_BROADCAST': macro redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\shared\ws2def.h 597
Error C2011 'sockaddr_in': 'struct' type redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\shared\ws2def.h 631
Error C2011 'fd_set': 'struct' type redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 136
Warning C4005 'FD_CLR': macro redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 156
Warning C4005 'FD_SET': macro redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 171
Error C2011 'timeval': 'struct' type redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 180
Error C2011 'hostent': 'struct' type redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 236
Error C2011 'netent': 'struct' type redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 249
Error C2011 'servent': 'struct' type redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 256
Error C2011 'protoent': 'struct' type redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 268
Error C2011 'WSAData': 'struct' type redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 364
Error C2011 'sockproto': 'struct' type redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 462
Error C2011 'linger': 'struct' type redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 504
Warning C4005 'SOMAXCONN': macro redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 517
Warning C4005 'FD_READ': macro redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 551
Warning C4005 'FD_WRITE': macro redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 554
Warning C4005 'FD_OOB': macro redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 557
Warning C4005 'FD_ACCEPT': macro redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 560
Warning C4005 'FD_CONNECT': macro redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 563
Warning C4005 'FD_CLOSE': macro redefinition otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 566
Error C2375 'accept': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 1622
Error C2375 'bind': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 1644
Error C2375 'closesocket': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 1665
Error C2375 'connect': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 1682
Error C2375 'ioctlsocket': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 1703
Error C2375 'getpeername': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 1724
Error C2375 'getsockname': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 1745
Error C2375 'getsockopt': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 1766
Error C2375 'htonl': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 1791
Error C2375 'htons': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 1808
Error C2375 'inet_addr': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 1826
Error C2375 'inet_ntoa': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 1844
Error C2375 'listen': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 1944
Error C2375 'ntohl': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 1963
Error C2375 'ntohs': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 1980
Error C2375 'recv': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 1997
Error C2375 'recvfrom': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2020
Error C2375 'select': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2047
Error C2375 'send': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2072
Error C2375 'sendto': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2095
Error C2375 'setsockopt': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2122
Error C2375 'shutdown': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2147
Error C2375 'socket': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2167
Error C2375 'gethostbyaddr': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2192
Error C2375 'gethostbyname': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2214
Error C2375 'gethostname': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2231
Error C2375 'getservbyport': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2271
Error C2375 'getservbyname': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2290
Error C2375 'getprotobynumber': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2309
Error C2375 'getprotobyname': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2326
Error C2375 'WSAStartup': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2346
Error C2375 'WSACleanup': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2366
Error C2375 'WSASetLastError': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2383
Error C2375 'WSAGetLastError': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2400
Error C2375 'WSAIsBlocking': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2421
Error C2375 'WSAUnhookBlockingHook': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2439
Error C2375 'WSASetBlockingHook': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2457
Error C2375 'WSACancelBlockingCall': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2475
Error C2375 'WSAAsyncGetServByName': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2493
Error C2375 'WSAAsyncGetServByPort': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2521
Error C2375 'WSAAsyncGetProtoByName': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2549
Error C2375 'WSAAsyncGetProtoByNumber': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2575
Error C2375 'WSAAsyncGetHostByName': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2601
Error C2375 'WSAAsyncGetHostByAddr': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2627
Error C2375 'WSACancelAsyncRequest': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2657
Error C2375 'WSAAsyncSelect': redefinition; different linkage otclient c:\program files (x86)\microsoft visual studio\2017\professional\sdk\scopecppsdk\sdk\include\um\winsock2.h 2675
Tyle "redefinition" sugeruje, że nagłówek winsock2.h jest wciągany dwa razy a nie zawiera #pragma once albo odpowiednika. Spróbuj zmienić kolejność include'ów.
Azarien napisał(a):
Tyle "redefinition" sugeruje, że nagłówek winsock2.h jest wciągany dwa razy a nie zawiera #pragma once albo odpowiednika. Spróbuj zmienić kolejność include'ów.
Jak zmieniam kolejność to setDllDirectoryW staje się undefined.
Może to ma jakiś związek z tym że kiedyś żeby skompilować z "Visual Studio 2017 - Windows XP (v141_xp)" musiałem dodać w VC++ directories -> include takie coś: