Autor Wątek: mySQL  (Przeczytany 6960 razy)

Offline BrunonDEV

  • Użytkownik
    • Construgia -- RPG

# Styczeń 17, 2016, 22:00:41
Hm. Zostanę przy synchronizacji z mySQL przez PHP, w takich np Wolnych Farmerach to działa (chodź tam cała gra jest w PHP*).

No i zamierzam zrobić to przy pomocy biblioteki WinSock. Poszukałem trochę i znalazłem kurs WinSock na Cpp0x, tylko że tamten jest robiony pod Linuxa i wiele rzeczy tam pokazanych nie działa. Poza tym tamten kurs jest dość obszerny, a mnie interesuje jedynie jeden 'coś', który tam chyba w ogóle nie jest pokazany, gdyż.. tamten kurs jest raczej o komunikacji aplikacja-aplikacja, a nie 'aplikacja-php-mySQL'.

Więc gdyby ktoś znalazł coś o 'aplikacja-php-mySQL', lub samemu pofatygował się napisać coś o tym, to z góry dzięki, bardzo się przyda. :)

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Estivo

  • Użytkownik
    • Blog

# Styczeń 17, 2016, 22:48:23
To ja się pofatyguje.

Poczytaj o połączeniach i sieci dla aplikacji, poczytaj o php, poczytaj o mysql. Połącz pewne wątki i rozwiązanie raczej na pewno samo wpadnie. :) Przy okazji +100% bonusu do doświadczenia za dążenie samemu do celu.

Offline maro

  • Użytkownik

# Styczeń 18, 2016, 00:01:18
Cytuj
A Ty proponujesz na to jeszcze kanapkę HTTP, JSON i skrypty PHP po stronie serwera (nie wspomniałeś nic o pisaniu własnej pętli serwerowej w tych skryptach, więc pewnie sugerujesz dokładnie ten sam model wykonania, co przy stronach WWW? To nie pyknie).
W przypadku tematu przedstawionego przez OP ten model ma szansę "pyknąć". O ile wcześniej OP odłoży na bok WinSocka, i przysiądzie do podstaw.

Cytuj
tamten kurs jest raczej o komunikacji aplikacja-aplikacja, a nie 'aplikacja-php-mySQL'.
Na początek, "aplikacja-aplikacja" - czyli zapewne połączenie dwóch aplikacji, gdzie jedna jest serwerem i nasłuchuje na jakimś porcie, a druga klientem i łączy się na ten port, poprzez protokół TCP, dalej następuje transmisja dwukierunkowa (doczytaj jak to dokładnie działa).

'aplikacja-php-mySQL' - czyli połączenie aplikacji (klienta) poprzez protokół TCP, z serwerem (np. Apache) nasłuchującym zwykle na porcie 80 (protokół HTTP). W nagłówku zapytania HTTP (request) klient przesyła różne informacje np. adres URL z którym próbuje się połączyć - serwer po odczytaniu tego adresu podejmuje odpowiednie działania (na podstawie konfiguracji, m.in. w pliku .htaccess) - i np. uruchamia twój skrypt php (w tym przekazuje różne informacje, m.in. dane które lądują w tablicach $_GET - z przeparsowanego adresu URL, oraz $_POST - z przeparsowanej treści wiadomości z nagłówka HTTP). Skrypt PHP łączy się z bazą danych (tym razem skrypt/proces php jest klientem i otwiera połączenie TCP do bazy danych, autoryzuje się, wysyła polecenia SQL, otrzymuje odpowiedź i zamyka połączenie). Tę odpowiedź twój skrypt może przetworzyć i wyrzucić na stdout, np. poleceniem echo. Strumień stdout jest umieszczany przez serwer w odpowiedzi HTTP (response), która trafia do klienta i połączenie jest zamykane.

Zauważ, że za każdym pobraniem/zapisem danych marnujesz sporo czasu, bo otwierasz i zamykasz połączenia TCP, (twój skrypt zresztą też) - o tym pisał Xender. , Możesz np. napisać taki skrypt php, który sam będzie serwerem (czyli omijasz apacha), i będzie przechowywał otwarte połączenie z bazą danych. Ale to już inna historia.

To tak tylko z grubsza, opisałem ci, co chcesz zrobić, bez wchodzenia w szczegóły (po drodze pewnie będą jeszcze: bindowanie adresów/nasłuchiwanie na portach/otwieranie połączeń full/half-duplex i ogarnięcie tego wszystkiego cpp, później logowanie w php/ciastka/sesje).

Ok - to nie ma szans "pyknać" - mówię o sobie, mi by się nie chciało;)

Offline BrunonDEV

  • Użytkownik
    • Construgia -- RPG

# Styczeń 18, 2016, 00:30:17
@up: Dzięki.. Tylko że opisałeś mi z grubsza to co już wiedziałem. ;)
Czemu nigdzie nie ma żadnej dokumentacji gdzie jasno bym miał podane jaką funkcję mam wywołać, by coś się stało? Wtedy nie byłoby żadnego problemu, a w tym temacie jak widzę wszyscy myślą, że nie umiem 'mentalnie' ogarnąć problemu, a ja mam problem z tym praktycznym wywoływaniem funkcji, a dokładnie z tym, że nie wiem co wywołać, chodź wiem co chcę żeby zostało wywołane.

Cytuj
Ok - to nie ma szans "pyknać" - mówię o sobie, mi by się nie chciało;)

Czemu? Ja to widzę prosto:

- Wywołuję w grze funkcję - tak jak teraz "App::saveToFile(sciezka, zmienna)" - to "App::saveToDataBase(...)",
- funkcja "otwiera w tle" (nie wiem jak to inaczej nazwać) stronę "construgia.c0.pl/API/?funkcja=zapisz&gdzie=...&co=...",*
- "strona w tle" zapisuje mi do bazy danych cośtam gdzieśtam i się zamyka.

I tak co 30 sekund.

Analogicznie:

- Wywołuję w grze funkcję - tak jak teraz "App::readFromFile(sciezka, zmienna)" - to App::readFromDataBase(...)",
- funkcja "otwiera w tle" (nie wiem jak to inaczej nazwać) stronę "construgia.c0.pl/API/?funkcja=odczytaj&gdzie=...&co=...",*
- do gry zostają przekazana zmienna, którą sobie później operuję.

I tak co 30 sekund.

Z czatem byłoby podobnie.

Czemu to nie zadziała? Zrobiłbym tak gdybym wiedział co wywoływać (z WinSock).

Cytuj
O ile wcześniej OP odłoży na bok WinSocka, i przysiądzie do podstaw.

Potrzebuję tylko kilku funkcji żeby zrobić to co chcę, nie chcę się uczyć wszystkiego.

* - oczywiście dodałbym jakieś zabezpieczenia żeby każdy nie mógł tak sobie zmieniać pól w bazie danych. ;)
« Ostatnia zmiana: Styczeń 18, 2016, 00:32:02 wysłana przez BrunonDEV »

Offline maro

  • Użytkownik

# Styczeń 18, 2016, 01:31:06
Cytuj
Czemu to nie zadziała? Zrobiłbym tak gdybym wiedział co wywoływać (z WinSock).
Właśnie o to chodzi, musisz ogarnąć teorię, żeby wiedzieć co zrobić z WinSockiem.
Cytuj
Czemu? Ja to widzę prosto:
Możesz na początek wziąć curla, i napisać takie funkcje w sposób synchroniczny. Powinno być prosto.
Cytuj
Potrzebuję tylko kilku funkcji żeby zrobić to co chcę, nie chcę się uczyć wszystkiego.
Potrzebuję tylko wiedzieć gdzie jest kierownica, żeby prowadzić samochód - w takim razie lepiej wziąć taksówkę (czyli np. curla)

Offline Karol

  • Użytkownik

  • +1
# Styczeń 18, 2016, 10:38:20
Zmontuj sobie po prostu małe API. Przy pierwszym uruchomieniu klienta wykonaj "instalację" w bazie - czyli wygeneruj jakiś token dla klienta i niech ten token będzie identyfikatorem. Potem każde inne polecenie z tym tokenem będzie operować na danych usera. Czyli:

  • construgia.c0.pl/API/install - generuje i zwraca token użytkownika, zapisz go w kliencie i przesyłaj potem z innymi informacjami
  • construgia.c0.pl/API/setdata - tam wyślij wszelkie dane jakie chcesz ustawić razem z tokenem użytkownika, jak zły token to olewasz request

Jeżeli nie chcesz/nie masz jak robić rewrite do adresów to już machnij to jako ?func=install. Najlepiej by było też przesyłać dane jako POST, a nie GET, ale to też dokłada ciut roboty (szczególnie jak się skleja samemu request HTTP).

No nie mówicie, że w C++ tak ciężko wysłać (a)synchroniczny request HTTP bo zwątpię w świat.

Offline Xender

  • Użytkownik

  • +1
# Styczeń 18, 2016, 11:45:33
No nie mówicie, że w C++ tak ciężko wysłać (a)synchroniczny request HTTP bo zwątpię w świat.

No jak ktoś próbuje z gołych socketów, bo mu dzwoni, ale nie ogarnia, co i gdzie, to ciężko.
Jak zgarnie libkę do zapytań HTTP, będzie prościej.

Offline BrunonDEV

  • Użytkownik
    • Construgia -- RPG

# Styczeń 18, 2016, 15:53:07
Ok, czyli już wiem że WinSock tutaj odpada.

Próbowałem wcześniej zainstalować curla (na MS Visual C++ 2010), ale coś nie działało, spróbuję jeszcze poszukać jakiejś wersji z gotowym .lib a nie source.

Offline BrunonDEV

  • Użytkownik
    • Construgia -- RPG

# Styczeń 18, 2016, 21:12:04
Ok, a więc..

Poszukałem trochę, znalazłem o to: https://quantcorner.wordpress.com/2012/04/08/using-libcurl-with-visual-c-2010/

Następnie z tego artykułu przeszedłem na stronę pobierania i pobrałem to: http://curl.haxx.se/latest.cgi?curl=tar.bz2

Gdy to pobrałem przerzuciłem pliki .h z include do include*, oraz.. no właśnie, w folderze lib zamiast plików .lib są pliki .cpp.. ale uznałem, że zawsze warto sprawdzić (może tak ma być..) i przerzuciłem te pliki do lib**.

Następnie zrobiłem to co jest podane w artykule (poza wybieraniem pozycji include i lib, bo wrzucam je prosto na C:/Program Files/.../VC/lib (include).

Do funkcji testowej wkleiłem taki kod (z docs):

#include <curl\curl.h>
#include <stdio.h>
#include <fstream>

using namespace std;

void saveToMySQL(std::string caseN){
CURL *curl;
CURLcode res;

curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
/* example.com is redirected, so we tell libcurl to follow redirection */
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);

/* Perform the request, res will get the return code */
res = curl_easy_perform(curl);
/* Check for errors */
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));

/* always cleanup */
curl_easy_cleanup(curl);
}
}

Skompilowałem i wyrzuciło mi to:

1>------ Build started: Project: Construgia, Configuration: Debug Win32 ------
1>  dataBaseSave.cpp
1>dataBaseSave.obj : error LNK2019: unresolved external symbol __imp__curl_easy_cleanup referenced in function "void __cdecl saveToMySQL(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?saveToMySQL@@YAXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
1>dataBaseSave.obj : error LNK2019: unresolved external symbol __imp__curl_easy_strerror referenced in function "void __cdecl saveToMySQL(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?saveToMySQL@@YAXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
1>dataBaseSave.obj : error LNK2019: unresolved external symbol __imp__curl_easy_perform referenced in function "void __cdecl saveToMySQL(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?saveToMySQL@@YAXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
1>dataBaseSave.obj : error LNK2019: unresolved external symbol __imp__curl_easy_setopt referenced in function "void __cdecl saveToMySQL(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?saveToMySQL@@YAXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
1>dataBaseSave.obj : error LNK2019: unresolved external symbol __imp__curl_easy_init referenced in function "void __cdecl saveToMySQL(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?saveToMySQL@@YAXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
1>main.obj : error LNK2019: unresolved external symbol "void __cdecl saveToMySQL(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?saveToMySQL@@YAXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0@Z) referenced in function "int __cdecl _mangled_main(void)" (?_mangled_main@@YAHXZ)
1>E:\Projekty C++\The Construgert 3\Debug\Construgia.exe : fatal error LNK1120: 6 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Więc.. mam kilka pytań.

Co mam zrobić żeby to zadziałało?

Czy trzeba coś zrobić by uzyskać liby z .cpp czy tak ma być?

Czy gdzieś jeszcze mam jakiś błąd?

Pozdrawiam :)

* - C:/Program Files/.../VC/include
** - C:/Program Files/.../VC/lib

Offline Xender

  • Użytkownik

  • +1
# Styczeń 18, 2016, 22:01:16
Jak masz libkę w formie źródeł, to musisz najpierw zbudować (skompilować i zlinkować do biblioteki statycznej lub dynamicznej).

Przerzucenie źródeł do folderu na zbudowane libki nie zadziała - nie ma tak prosto - ale możesz też dorzucić źródła i includy biblioteki bezpośrednio do odpowiednich podkatalogów projektu i kompilować+linkować je razem z własnym kodem - tylko, że to też może wymagać odpowiedniej konfiguracji.

Może znajdziesz na internecie skompilowaną wersję pod VS.
Wersja skompilowana MinGW/Cygwinem niekoniecznie będzie kompatybilna.

Jak dokładnie to poprawnie skonfigurować pod winzgrozą to niestety nie doradzę (poszukaj na necie albo poczekaj na specjalistę od tego), bo problem piekiełka z libkami do C/C++ (co któraś wymaga "indywidualnego podejścia") sam rozwiązałem dopiero przechodząc na linucha, gdzie od tego jest manager paczek dystrybucji.

Offline Adam27

  • Użytkownik

  • +2
# Styczeń 18, 2016, 22:19:58
Ściągnij sobie CMake'a. Wybierz foldery, kliknij Configure, potem Generate (a przynajmniej tak jest w wersji 2.8 którą ja kiedyś używałem). W folderze docelowym powinien utworzyć Ci się projekt Visuala. Otwórz go i zbuduj liby :)

Offline BrunonDEV

  • Użytkownik
    • Construgia -- RPG

# Styczeń 19, 2016, 19:45:35
Cytuj
Ściągnij sobie CMake'a. Wybierz foldery, kliknij Configure, potem Generate (a przynajmniej tak jest w wersji 2.8 którą ja kiedyś używałem). W folderze docelowym powinien utworzyć Ci się projekt Visuala. Otwórz go i zbuduj liby :)

Szczerze mówiąc to nie jest mój pierwszy problem z bibliotekami w C++, więc zdziwiłbym się gdyby to zadziałało.
Zaznaczyłem folder z plikami, potem folder docelowy. Wszystko część plików się zbudowało, wyskoczyły jakieś błędy. Potem kiedy próbowałem zbuilować solucję w Visualu miałem "21 failed", a.. pliki dll chyba nigdzie się nie pojawiły.

Offline Adam27

  • Użytkownik

  • +1
# Styczeń 19, 2016, 20:11:19
U mnie to działa. Zbudowałem projekt ALL_BUILD wygenerowany przez CMake'a i w folderze lib/Release (albo Debug, zależy co wybierzesz) utworzyły się libcurl_imp.lib oraz libcurl.dll. Zamiast all może spróbuj zbudować sam projekt libcurl, reszta to głównie tylko testy więc może dlatego masz 21 failed, choć to i tak dziwne bo u mnie wszystko jest succeeded.

Edit: w CMake'u jako katalog źródłowy wybrałeś cały folder curl, czy tylko src?
« Ostatnia zmiana: Styczeń 19, 2016, 20:16:11 wysłana przez Adam27 »

Offline BrunonDEV

  • Użytkownik
    • Construgia -- RPG

# Styczeń 19, 2016, 20:18:53
Cytuj
Edit: w CMake'u jako katalog źródłowy wybrałeś cały folder curl, czy tylko src?

Cały folder curl. ;)

Za chwilę spróbuję jeszcze trochę popróbować zgodnie z tym co mi napisałeś i napiszę czy się udało.

Offline BrunonDEV

  • Użytkownik
    • Construgia -- RPG

# Styczeń 19, 2016, 21:08:03
No dobra, zaczyna się robić dziwnie.

Otóż skompilowałem wszystko ponownie, identycznie jak wcześniej (w trybie Debug) i wynik jest taki:

Końcówka logu kompilacji:

========== Build: 21 succeeded, 0 failed, 96 up-to-date, 2 skipped ==========
Już to może zastanawiać, bo nic nie zmieniłem, a to co poprzednio było failed teraz jest succeeded, ale jeszcze bardziej zdziwiłem się, kiedy patrzę do folderu Debug, a tam.. nic nie ma.

Szczerze mówiąc jeszcze nie zacząłem, a już mam dość.

EDIT: Podaję też pełny log kompilacji, może się przydać.

1>------ Build started: Project: Test lib591, Configuration: Debug Win32 ------
1>  lib591.vcxproj -> C:\Users\user\Desktop\LIBS\tests\libtest\Debug\lib591.exe
2>------ Build started: Project: Test lib500, Configuration: Debug Win32 ------
3>------ Build started: Project: Test lib2033, Configuration: Debug Win32 ------
4>------ Build started: Project: Test lib1531, Configuration: Debug Win32 ------
3>  LINK : C:\Users\user\Desktop\LIBS\tests\libtest\Debug\lib2033.exe not found or not built by the last incremental link; performing full link
5>------ Build started: Project: Test lib1526, Configuration: Debug Win32 ------
2>  lib500.vcxproj -> C:\Users\user\Desktop\LIBS\tests\libtest\Debug\lib500.exe
3>  lib2033.vcxproj -> C:\Users\user\Desktop\LIBS\tests\libtest\Debug\lib2033.exe
6>------ Build started: Project: Test lib1525, Configuration: Debug Win32 ------
7>------ Build started: Project: Test lib1515, Configuration: Debug Win32 ------
4>  lib1531.vcxproj -> C:\Users\user\Desktop\LIBS\tests\libtest\Debug\lib1531.exe
8>------ Build started: Project: Test lib1514, Configuration: Debug Win32 ------
8>  lib1514.c
5>  lib1526.vcxproj -> C:\Users\user\Desktop\LIBS\tests\libtest\Debug\lib1526.exe
9>------ Build started: Project: Test lib1513, Configuration: Debug Win32 ------
9>  lib1513.c
6>  lib1525.vcxproj -> C:\Users\user\Desktop\LIBS\tests\libtest\Debug\lib1525.exe
10>------ Build started: Project: Test lib1512, Configuration: Debug Win32 ------
7>  lib1515.vcxproj -> C:\Users\user\Desktop\LIBS\tests\libtest\Debug\lib1515.exe
10>  lib1512.c
11>------ Build started: Project: Test lib1507, Configuration: Debug Win32 ------
8>  first.c
10>  first.c
9>  first.c
8>  testutil.c
10>  testutil.c
9>  testutil.c
9>  warnless.c
8>  warnless.c
10>  warnless.c
10>  Generating Code...
8>  Generating Code...
9>  Generating Code...
11>  lib1507.vcxproj -> C:\Users\user\Desktop\LIBS\tests\libtest\Debug\lib1507.exe
12>------ Build started: Project: Test lib1506, Configuration: Debug Win32 ------
12>  lib1506.vcxproj -> C:\Users\user\Desktop\LIBS\tests\libtest\Debug\lib1506.exe
9>  lib1513.vcxproj -> C:\Users\user\Desktop\LIBS\tests\libtest\Debug\lib1513.exe
8>  lib1514.vcxproj -> C:\Users\user\Desktop\LIBS\tests\libtest\Debug\lib1514.exe
13>------ Build started: Project: Test lib1505, Configuration: Debug Win32 ------
14>------ Build started: Project: Test lib1504, Configuration: Debug Win32 ------
15>------ Build started: Project: Test lib1503, Configuration: Debug Win32 ------
14>  lib1502.c
15>  Building Custom Rule C:/Users/user/Desktop/curl/curl-7.46.0/tests/libtest/CMakeLists.txt
13>  lib1505.vcxproj -> C:\Users\user\Desktop\LIBS\tests\libtest\Debug\lib1505.exe
10>  lib1512.vcxproj -> C:\Users\user\Desktop\LIBS\tests\libtest\Debug\lib1512.exe
16>------ Build started: Project: Test lib1502, Configuration: Debug Win32 ------
17>------ Build started: Project: Test lib1501, Configuration: Debug Win32 ------
16>  lib1502.c
16>  first.c
16>  testutil.c
16>  warnless.c
15>  CMake does not need to re-run because C:\Users\user\Desktop\LIBS\tests\libtest\CMakeFiles\generate.stamp is up-to-date.
16>  Generating Code...
15>  lib1502.c
14>  lib1504.vcxproj -> C:\Users\user\Desktop\LIBS\tests\libtest\Debug\lib1504.exe
18>------ Build started: Project: Test lib1500, Configuration: Debug Win32 ------
15>  first.c
15>  testutil.c
15>  warnless.c
15>  Generating Code...
18>  Building Custom Rule C:/Users/user/Desktop/curl/curl-7.46.0/tests/libtest/CMakeLists.txt
18>  CMake does not need to re-run because C:\Users\user\Desktop\LIBS\tests\libtest\CMakeFiles\generate.stamp is up-to-date.
18>  lib1500.c
18>  first.c
18>  testutil.c
18>  Generating Code...
15>  lib1503.vcxproj -> C:\Users\user\Desktop\LIBS\tests\libtest\Debug\lib1503.exe
16>  lib1502.vcxproj -> C:\Users\user\Desktop\LIBS\tests\libtest\Debug\lib1502.exe
19>------ Build started: Project: curl, Configuration: Debug Win32 ------
20>------ Build started: Project: Test chkhostname, Configuration: Debug Win32 ------
21>------ Skipped Build: Project: show, Configuration: Debug Win32 ------
21>Project not selected to build for this solution configuration
20>  Building Custom Rule C:/Users/user/Desktop/curl/curl-7.46.0/tests/libtest/CMakeLists.txt
19>  Building Custom Rule C:/Users/user/Desktop/curl/curl-7.46.0/src/CMakeLists.txt
20>  CMake does not need to re-run because C:\Users\user\Desktop\LIBS\tests\libtest\CMakeFiles\generate.stamp is up-to-date.
19>  CMake does not need to re-run because C:\Users\user\Desktop\LIBS\src\CMakeFiles\generate.stamp is up-to-date.
19>  Generating tool_hugehelp.c
20>  chkhostname.c
18>  lib1500.vcxproj -> C:\Users\user\Desktop\LIBS\tests\libtest\Debug\lib1500.exe
20>  curl_gethostname.c
19>  slist_wc.c
20>  Generating Code...
19>  tool_binmode.c
19>  tool_bname.c
19>  tool_cb_dbg.c
19>  tool_cb_hdr.c
20>  chkhostname.vcxproj -> C:\Users\user\Desktop\LIBS\tests\libtest\Debug\chkhostname.exe
19>  tool_cb_prg.c
19>  tool_cb_rea.c
19>  tool_cb_see.c
19>..\..\curl\curl-7.46.0\src\tool_cb_see.c(82): warning C4244: 'function' : conversion from 'curl_off_t' to 'long', possible loss of data
19>  tool_cb_wrt.c
19>  tool_cfgable.c
19>  tool_convert.c
19>  tool_dirhie.c
19>  tool_doswin.c
19>  tool_easysrc.c
19>  tool_formparse.c
19>  tool_getparam.c
19>  tool_getpass.c
19>  tool_help.c
19>  tool_helpers.c
19>  tool_homedir.c
19>  Generating Code...
19>  Compiling...
19>  tool_hugehelp.c
19>  tool_libinfo.c
19>  tool_main.c
19>  tool_metalink.c
19>  tool_mfiles.c
19>  tool_msgs.c
19>  tool_operate.c
19>  tool_operhlp.c
19>  tool_panykey.c
19>  tool_paramhlp.c
19>  tool_parsecfg.c
19>  tool_strdup.c
19>  tool_setopt.c
19>  tool_sleep.c
19>  tool_urlglob.c
19>  tool_util.c
19>  tool_vms.c
19>  tool_writeenv.c
19>  tool_writeout.c
19>  tool_xattr.c
19>  Generating Code...
19>  Compiling...
19>  strtoofft.c
19>  rawstr.c
19>  nonblock.c
19>  warnless.c
19>  Generating Code...
19>  curl.vcxproj -> C:\Users\user\Desktop\LIBS\src\Debug\curl.exe
22>------ Build started: Project: ALL_BUILD, Configuration: Debug Win32 ------
22>  Building Custom Rule C:/Users/user/Desktop/curl/curl-7.46.0/CMakeLists.txt
22>  CMake does not need to re-run because C:\Users\user\Desktop\LIBS\CMakeFiles\generate.stamp is up-to-date.
23>------ Skipped Build: Project: INSTALL, Configuration: Debug Win32 ------
23>Project not selected to build for this solution configuration
========== Build: 21 succeeded, 0 failed, 96 up-to-date, 2 skipped ==========

EDIT2:
Pfff.. Zwracam honor ceplusplusowi, poprzechodziłem losowo po folderach i znalazłem libki w zupełnie innym miejscu niż myślałem. Jest libcurl_imp.lib, libcurl.dll oraz kilka innych plików, które nie wiem czy są do czegoś potrzebne (??).

Tak więc teraz spróbuję includować to do gry (no właśnie.. co dokładnie muszę podać linkerowi?) i napiszę czy się udało. Mam nadzieję że tak będzie :)

Lekko przeziębiony jestem i mam drobny problem jeżeli chodzi o spostrzegawczość i prędkość myślenia ;)
« Ostatnia zmiana: Styczeń 19, 2016, 21:19:05 wysłana przez BrunonDEV »