Autor Wątek: Przejście z VS2008 na VS2013  (Przeczytany 2686 razy)

0 Użytkowników i 1 Gość przegląda ten wątek.

Offline mucha

  • Senior Developer
  • Młodzież
  • *
Przejście z VS2008 na VS2013
« dnia: Kwiecień 01, 2014, 19:06:38 pm »
Cześć,
W końcu znalazłem trochę czasu, żeby przekompilować (niektóre) moje wtyczki pod nowego Visuala tak żeby działały na nowszych nightly. Prawie skończyłem, ale nasunęło mi się parę pytań:
1. Czy prócz konwersji pliku projektu i ustawienia Platform toolset na "Visual Studio 2013 - Windows XP (v120_xp)" trzeba zrobić coś jeszcze?
2. Co się stało z msgSubject z wtwArchiveEntryMessage i wtwMessageDef?
3. wtwGetInet wyleciało?
4. Czy konieczność przekompilowania wtyczek na VS2013 jest podyktowana względami technicznymi czy ideologicznymi, innymi słowy czy wtyczki mogłyby działać dalej bez rekompilacji?

I mała info-rada dla potomnych: zapisujcie pliki .rc w UTF-16, VS2013 nie radzi sobie z UTF-8.

Offline Kaworu

  • Ryszard
  • Szlachta
  • *
  • Twój Koszmar Senny
    • k2t.eu
Odp: Przejście z VS2008 na VS2013
« Odpowiedź #1 dnia: Kwiecień 01, 2014, 19:25:07 pm »
1. Czy prócz konwersji pliku projektu i ustawienia Platform toolset na "Visual Studio 2013 - Windows XP (v120_xp)" trzeba zrobić coś jeszcze?
Nie, ale zmień tymczasowo runtime na Multithreaded (bez DLL) dzieki czemu na starej stabilnej tez beda działały, a jak wyjdzie nowa stabilna to przestawisz na "Multithreaded DLL" i bedzie po kłopocie.

2. Co się stało z msgSubject z wtwArchiveEntryMessage i wtwMessageDef?
Ni ma. Zostalo zastapione czyms innym, a temat wstawiamy w msgExtInfo z name=L"subject".

3. wtwGetInet wyleciało?
Miałem cos takiego?

4. Czy konieczność przekompilowania wtyczek na VS2013 jest podyktowana względami technicznymi czy ideologicznymi, innymi słowy czy wtyczki mogłyby działać dalej bez rekompilacji?
Nie mogły by. Myslalem ze moga, teoretycznie powinny ale okazlo sie, ze komunikator wali milionem bledow o ladowaniu CRT bez manifestu i wtytczek nie uruchamia, wiec wstawiłem tam fake CRT z 9.0.

Offline mucha

  • Senior Developer
  • Młodzież
  • *
Odp: Przejście z VS2008 na VS2013
« Odpowiedź #2 dnia: Kwiecień 01, 2014, 19:49:43 pm »
Cytuj
Nie, ale zmień tymczasowo runtime na Multithreaded (bez DLL) dzieki czemu na starej stabilnej tez beda działały, a jak wyjdzie nowa stabilna to przestawisz na "Multithreaded DLL" i bedzie po kłopocie.
Nie chce mi się tego wszystkiego kompilować/kopiować/wgrywać etc 2 razy. Jak ktoś będzie miał "starą" stabilną i zainstalowane redistibutable dla VS2013 to zadziała, a jak nie ma to albo sobie ściągnie starszą wersję wtyczki albo je zainstaluje.
Cytuj
Miałem cos takiego?
Było, zwracało (przypuszczam, że przydzielony dla wtyczki/dzielony pomiędzy wtyczkami) HINTERNET. Zmieniłem na InternetOpen.

Dzięki

Offline mucha

  • Senior Developer
  • Młodzież
  • *
Odp: Przejście z VS2008 na VS2013
« Odpowiedź #3 dnia: Kwiecień 02, 2014, 07:05:08 am »
Jeszcze jedna rzecz, kiedyś w API udostępniałeś skompilowane sqlite (tak wiem, to mogło być 4 lata temu). Teraz widzę, że jest tylko nagłówek sqlite.h, ale .lib brak. To jakieś przeoczenie czy teraz mamy sami tą bibliotekę zapewniać?

Offline Kaworu

  • Ryszard
  • Szlachta
  • *
  • Twój Koszmar Senny
    • k2t.eu
Odp: Przejście z VS2008 na VS2013
« Odpowiedź #4 dnia: Kwiecień 02, 2014, 08:03:07 am »
Pewnie przeoczenie. Ale jak nie potrzebujesz czegoś specjalnego z SQLite to moze wtw:db ?

Offline mucha

  • Senior Developer
  • Młodzież
  • *
Odp: Przejście z VS2008 na VS2013
« Odpowiedź #5 dnia: Kwiecień 02, 2014, 08:13:44 am »
Nie chce wprowadzać teraz żadnych większych zmian w kodzie, bo nie mam czasu na testowanie tego. Fajnie jakbyś przywrócił to sqlite.lib do API, bo właściwie tylko to mi zostało do przeportowania.

Offline Kaworu

  • Ryszard
  • Szlachta
  • *
  • Twój Koszmar Senny
    • k2t.eu
Odp: Przejście z VS2008 na VS2013
« Odpowiedź #6 dnia: Kwiecień 02, 2014, 15:20:58 pm »
Nastepna nightly doda liba, tylko ze zmienioną nazwą.

Offline kwiateusz

Odp: Przejście z VS2008 na VS2013
« Odpowiedź #7 dnia: Kwiecień 03, 2014, 14:12:28 pm »
czemu wtwContactListItem::itemText zwraca nr gg, albo login z uslugi, zamiast wyswietlanej nazwy?

mam
WTW_PARAM contact = NULL;
wtw->fnCall(WTW_CTL_CONTACT_FIND_EX, reinterpret_cast<WTW_PARAM>(&historyContacts[i]), contact);

wtwContactListItem item;
initStruct(item);
wtw->fnCall(WTW_CTL_CONTACT_GET, contact, reinterpret_cast<WTW_PARAM>(&item));

do tej pory działało dopoki nie uzywam EX z ost. api z kwietnia

strona z opcjami też nie chce sie pokazać na liście, a mówiłeś Kaworu na fb że wystarczy przekompilować :(
« Ostatnia zmiana: Kwiecień 03, 2014, 17:07:35 pm wysłana przez kwiateusz »

Offline adrian_007

  • Master Developer
  • Starszyzna
  • *
    • WTW PLUGINS
Odp: Przejście z VS2008 na VS2013
« Odpowiedź #8 dnia: Kwiecień 03, 2014, 18:27:09 pm »
bo wystarczy, masz błąd w kodzie

to działa:
std::wstring wtwPastebin::item::getContactName() const
{
wtwContactDef c;
initStruct(c);
c.id = id.c_str();
c.netClass = netClass.c_str();
c.netId = netId;

WTW_PTR h = 0;
wtw->fnCall(WTW_CTL_CONTACT_FIND_EX, (WTW_PARAM)&c, (WTW_PARAM)&h);

if(h)
{
wtwContactListItem item;
initStruct(item);
wtw->fnCall(WTW_CTL_CONTACT_GET, (WTW_PARAM)h, (WTW_PARAM)&item);
return item.itemText;
}
else
{
return id;
}
}

Offline mucha

  • Senior Developer
  • Młodzież
  • *
Odp: Przejście z VS2008 na VS2013
« Odpowiedź #9 dnia: Kwiecień 03, 2014, 19:58:20 pm »
Taki mały offtop, ale jeśli używasz C++ (a używasz) to nie trzeba robić initStruct po definicji struktury. I też nie trzeba robić reinterpret_cast<WTW_PARAM>(&s) czy (WTW_PARAM)(&s) w fnCall, można po prostu dać "s". Patrz: wtwPlugin.h i __wtwStdStructDefs.

Offline kwiateusz

Odp: Przejście z VS2008 na VS2013
« Odpowiedź #10 dnia: Kwiecień 03, 2014, 20:18:46 pm »
bez rzutowania to sie kompilator rzuca, jeszcze init to moze przejsc.

adrian a czym moj kod sie rozni oprocz warunku na h? Kod mi działa, kompiluje, odpala, tyle ze item.itemText nie zwraca tego co wczesniej (moze cos przeoczylem... dzis caly dzien siedze nad kodami w różnych językach...)

Offline adrian_007

  • Master Developer
  • Starszyzna
  • *
    • WTW PLUGINS
Odp: Przejście z VS2008 na VS2013
« Odpowiedź #11 dnia: Kwiecień 03, 2014, 20:35:02 pm »
@mucha: ja tam dla kawa nie ufam w tym względzie, bo potrafił zapomnieć dorzucić konstruktor z init + operatorem na WTW_PARAM, to nie jest żaden błąd, to jest
1. zamierzone działanie
2. niektóre kody w ogóle tak mają, bo w czasie ich pisania struktury nie miały jeszcze ctor + operator

@kwiateusz: przekazujesz zmienną contact przez wartość, powinieneś przez wskaźnik, inaczej mówiąc w twojej wersji wygląda to tak:
wtw->fnCall(WTW_CTL_CONTACT_FIND_EX, reinterpret_cast<WTW_PARAM>(&historyContacts[i]), NULL);
a powinno być tak:
WTW_PARAM contact = NULL;
wtw->fnCall(WTW_CTL_CONTACT_FIND_EX, reinterpret_cast<WTW_PARAM>(&historyContacts[i]), reinterpret_cast<WTW_PARAM>(&contact));

mam nadzieję, że teraz to jasne

//edit
btw, to te fcje prawdopodobnie zwracają S_OK jeżeli wywołanie się powiodło, więc to też można sprawdzać (ja tam jestem leniwy bo i tak mam fallback w tym przypadku)

Offline kwiateusz

Odp: Przejście z VS2008 na VS2013
« Odpowiedź #12 dnia: Kwiecień 03, 2014, 20:44:05 pm »
Dzięki, od razu wychodzą moje braki z cpp, to wracam do zabawy, bo teraz to mi sie wszystko sypie. poprzednie api było bardziej idiotoodporne :)

Offline Kaworu

  • Ryszard
  • Szlachta
  • *
  • Twój Koszmar Senny
    • k2t.eu
Odp: Przejście z VS2008 na VS2013
« Odpowiedź #13 dnia: Kwiecień 04, 2014, 10:20:36 am »
Ty ale te zmiany w API to nastąpiły już jakiś czas temu, Ty jakieś antyczne musiałeś mieć, czy coś. :P

Offline kwiateusz

Odp: Przejście z VS2008 na VS2013
« Odpowiedź #14 dnia: Kwiecień 04, 2014, 10:22:10 am »
Po datach utworzenia plików patrze że coś koło 2012, ważne że działało :P