Autor Wątek: Kody błędów wtyczek  (Przeczytany 5609 razy)

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

wlodixon

  • Gość
Kody błędów wtyczek
« dnia: Luty 02, 2009, 23:01:28 pm »
Męczę się z tym kodem base_plug. Niestety nie wychodzi mi to super. Wszystko wydaje się być ok.
Kod sprawdzałem z tym z wiki (brakuje tam średnika na końcu WTWPLUGINFO)

W konsoli wyświetla mi się taki błąd:

[005449::PLMG] 	Error: _base_plug_.plug (126)

Kaw - jakaś podpowiedź.

Korzystam z Visual Studio 2008. Projekt Kaw-a ładnie mi przekonwertował więc nie wiem co w tak niewielkiej ilości kodu może być udupione.

------------------------EDIT------------------------

OK. Z powyższym problemem już sobie poradziłem.
Kaw - jak będziesz miał chwilkę to rzuć okiem na okienko "O wtyczce" oraz standardowy komunikat podczas startu gdy wrzuci się nieprawidłowego pluga. Obydwa okna są strasznie rozjechane :/

mucha

  • Gość
Re: Kody błędów wtyczek
« Odpowiedź #1 dnia: Luty 04, 2009, 18:45:09 pm »
A możesz zdradzić co poprawiłeś? Bo mam identyczny błąd.

wlodixon

  • Gość
Re: Kody błędów wtyczek
« Odpowiedź #2 dnia: Luty 04, 2009, 19:43:25 pm »
poprawiłem zawartość nazwa_projektu.def bo o dziwo tego przekonwertowanego nie brał poważnie pod uwagę :

Offline alberht

  • WTW evangelist
  • Global Moderator
  • Młodzież
  • *
    • http://forum.k2t.eu/
Re: Kody błędów wtyczek
« Odpowiedź #3 dnia: Luty 04, 2009, 23:25:18 pm »
@mucha:
miło Cię widzieć;) mam nadzieję, że dla WTW stworzysz przynajmniej tyle i tak dobrych wtyczek jak dla K;)
trzymam kciuki i pozdrawiam!
Regards,
alberht
WTW evangelist

mucha

  • Gość
Re: Kody błędów wtyczek
« Odpowiedź #4 dnia: Luty 06, 2009, 11:55:05 am »
Załączam gotową solution do Visual Studio 2008.

@alberht:
Na razie to tylko się rozglądam, z WTW nie korzystam bo jest jak na razie za bardzo "beta" :)

MiErY

  • Gość
Re: Kody błędów wtyczek
« Odpowiedź #5 dnia: Luty 06, 2009, 12:52:37 pm »
Mały OT: Jak w VS przenieść aplikacje/wtyczke na 64-bity? Coś mi nie wychodzi...

Offline Kaworu

  • Ryszard
  • Szlachta
  • *
  • Twój Koszmar Senny
    • k2t.eu
Re: Kody błędów wtyczek
« Odpowiedź #6 dnia: Luty 06, 2009, 12:58:08 pm »
Configuration manager, z górnego prawego combo (solution platform) -> "<new>" wybrać x64 (o ile jest zainstalowane) i "copy settings from" odpowiednie;

MiErY

  • Gość
Re: Kody błędów wtyczek
« Odpowiedź #7 dnia: Luty 06, 2009, 13:11:19 pm »
Dzięki, działa.

wlodixon

  • Gość
Re: Kody błędów wtyczek
« Odpowiedź #8 dnia: Kwiecień 05, 2009, 16:40:09 pm »
Będe kontynuował ten temat.
Powiedzcie mi co robie zle - ponizej kod

	wtwBuffer xxx;

xxx.bufferSize = MAX_PATH + 1;
xxx.pBuffer = new wchar_t[MAX_PATH + 1];

pF->Call(WTW_INFO_GET_PROFILE_DIRECTORY, (WTW_PARAM) &xxx, NULL );
Dlaczego wywala mi w tym momencie orla?

PS: Kaw a moze by tak jakas malą opcje wyłączenia wysyłania dump-ow. Bo posłałem ich już chyba 10, a szkoda mi zasypywac problemami mojej nieumiejetnosci pisania :)

Offline malcom

  • Młodzież
  • **
    • http://malcom.pl
Re: Kody błędów wtyczek
« Odpowiedź #9 dnia: Kwiecień 05, 2009, 16:54:02 pm »
Cytat: "wlodixon"
Dlaczego wywala mi w tym momencie orla?
Zapewne wtw sprawdza w przeciwienstwie do tlena pole structSize - makro initStruct() powino rozwiazac problem  ;)

I po co ta alokacja bufora, skoro jej rozmiar jest znany w czasie kompilacji, to wydajniej i lepiej bedzie ja pozostawic na stosie.

	wchar_t wbuf[MAX_PATH+1];
wtwBuffer xxx;
initStruct(xxx);

xxx.bufferSize = sizeof(wbuf);
xxx.pBuffer = wbuf;

pF->Call(WTW_INFO_GET_PROFILE_DIRECTORY, (WTW_PARAM) &xxx, NULL );

Anyway, nie wiem jaki glebszy sens ma przekazywanie rozmiaru w kazdej strukturze, skoro problem kompatybilnosci raczej 'rozwiazany' jest przy ladowaniu wtyczki przez PLUGIN_API_VERSION...
chyba zeby stare wtyczki dzialaly na nowym zmienionym w jakims stopniu API, ale wtedy tez mozna to 'rozwiazac' przez porownywanie PLUGIN_API_VERSION, co powinno byc bezpieczniejsze i lepsze.
« Ostatnia zmiana: Kwiecień 05, 2009, 17:03:34 pm wysłana przez malcom »
malcom.pl | xime - moj im;p

Offline Kaworu

  • Ryszard
  • Szlachta
  • *
  • Twój Koszmar Senny
    • k2t.eu
Re: Kody błędów wtyczek
« Odpowiedź #10 dnia: Kwiecień 05, 2009, 16:58:16 pm »
Cytat: "malcom"
Anyway, nie wiem jaki glebszy sens ma przekazywanie rozmiaru w kazdej strukturze, skoro problem kompatybilnosci raczej 'rozwiazany' jest przy ladowaniu wtyczki przez PLUGIN_API_VERSION...
Bo znając rozmiar mogę zrobić fallback, a przy niekompatybilnej wersji api musze odmowic załadowania wtyczki. ;P

wtwMyConfigFile pBuff;
initStruct(pBuff);

pBuff.bufferSize = MAX_PATH + 1;
pBuff.pBuffer    = new wchar_t[MAX_PATH + 1]();

pF->Call(WTW_INFO_GET_PROFILE_DIRECTORY,
reinterpret_cast<TPARAM>(&pBuff), NULL);
[...]
delete [] pBuff.pBuffer;
Takie coś mi tam działa;

A i jak wystartujesz wtw z debugera to raportu nie wyśle. ;P

Offline malcom

  • Młodzież
  • **
    • http://malcom.pl
Re: Kody błędów wtyczek
« Odpowiedź #11 dnia: Kwiecień 05, 2009, 17:04:46 pm »
Cytat: "Kaworu"
Cytat: "malcom"
Anyway, nie wiem jaki glebszy sens ma przekazywanie rozmiaru w kazdej strukturze, skoro problem kompatybilnosci raczej 'rozwiazany' jest przy ladowaniu wtyczki przez PLUGIN_API_VERSION...
Bo znając rozmiar mogę zrobić fallback, a przy niekompatybilnej wersji api musze odmowic załadowania wtyczki. ;P
;p

Odnosnie initStruct, Kaw moze lepsze byloby tak jak planuje w xime, dodnie ctor do struktur z memsetem or sth, jesli zdefiniowano _cplusplus, wtedy we wtyczlach w C++ nie trzeba byloby pamietac o inicjalizacj i byloby to "zgodne z duchem" OOP i cpp ;p
malcom.pl | xime - moj im;p

wlodixon

  • Gość
Re: Kody błędów wtyczek
« Odpowiedź #12 dnia: Kwiecień 05, 2009, 17:13:55 pm »
Cytat: "malcom"
Zapewne wtw sprawdza w przeciwienstwie do tlena pole structSize - makro initStruct() powino rozwiazac problem  ;)

Przekopiowałem żywcem Twój kod i nadal orzełek :/

Offline Kaworu

  • Ryszard
  • Szlachta
  • *
  • Twój Koszmar Senny
    • k2t.eu
Re: Kody błędów wtyczek
« Odpowiedź #13 dnia: Kwiecień 05, 2009, 17:14:45 pm »
A co debuger pokazuje?

wlodixon

  • Gość
Re: Kody błędów wtyczek
« Odpowiedź #14 dnia: Kwiecień 05, 2009, 17:28:23 pm »
Cytat: "Kaworu"
A co debuger pokazuje?

Już nie pamietam, ale sobie poradziłem.
Z niewiadomych dla mnie przyczyn musiałem zmienic kolejność kodu.


Tak nie działało:
int __stdcall pluginLoad(DWORD callReason, WTWFUNCTIONS *fC)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());

   wtwMyConfigFile pBuff;
   initStruct(pBuff);

   pBuff.bufferSize = MAX_PATH + 1;
   pBuff.pBuffer    = new wchar_t[MAX_PATH + 1]();

   pF->Call(WTW_INFO_GET_PROFILE_DIRECTORY, reinterpret_cast<TPARAM>(&pBuff), NULL);
   __LOG(fC, L"WDXX---", pBuff.pBuffer);
   delete [] pBuff.pBuffer;

           __LOG(fC, L"WDXX---", L"Test plugin loaded... v4");
          pF = fC;

wtwOptionPageDef def;
initStruct(def);

def.callBack = callbackOptions;
def.iD = L"WDX/Options";
def.caption = L"WDX";
def.parentID = WTW_OPTIONS_GROUP_PLUGINS;

pF->Call(WTW_ADD_OPTIONS_PAGE, (WTW_PARAM) theApp.m_hInstance, (WTW_PARAM) &def );

    return 0;
}



Zadziałało gdy zmieniłem te wywołania kolejnością - czyli tak:
int __stdcall pluginLoad(DWORD callReason, WTWFUNCTIONS *fC)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());

          __LOG(fC, L"WDXX---", L"Test plugin loaded... v4");
          pF = fC;

wtwOptionPageDef def;
initStruct(def);

def.callBack = callbackOptions;
def.iD = L"WDX/Options";
def.caption = L"WDX";
def.parentID = WTW_OPTIONS_GROUP_PLUGINS;

pF->Call(WTW_ADD_OPTIONS_PAGE, (WTW_PARAM) theApp.m_hInstance, (WTW_PARAM) &def );


   wtwMyConfigFile pBuff;
   initStruct(pBuff);

   pBuff.bufferSize = MAX_PATH + 1;
   pBuff.pBuffer    = new wchar_t[MAX_PATH + 1]();

   pF->Call(WTW_INFO_GET_PROFILE_DIRECTORY, reinterpret_cast<TPARAM>(&pBuff), NULL);
   __LOG(fC, L"WDXX---", pBuff.pBuffer);
   delete [] pBuff.pBuffer;

    return 0;
}

PS: w trybie DEBUG też wysłał dumpa.

Offline Kaworu

  • Ryszard
  • Szlachta
  • *
  • Twój Koszmar Senny
    • k2t.eu
Re: Kody błędów wtyczek
« Odpowiedź #15 dnia: Kwiecień 05, 2009, 17:32:47 pm »
Podejzewalem jakoś, ze zrobiłeś coś głupiego jak odwołanie się do pF zanim go ustawiłeś. ;P

A ja nie mowie o trybie debug programu, tylko o odpaleniu debugera VS na przyklad i zaladowaniu nim aplikacji ;>

wlodixon

  • Gość
Re: Kody błędów wtyczek
« Odpowiedź #16 dnia: Kwiecień 05, 2009, 17:34:38 pm »
No wiesz.... aż taki orzełek to ja nie jestem.

No tak - ale ze mnie dureń!!!!

Offline malcom

  • Młodzież
  • **
    • http://malcom.pl
Re: Kody błędów wtyczek
« Odpowiedź #17 dnia: Kwiecień 05, 2009, 17:40:45 pm »
Cytat: "wlodixon"
Przekopiowałem żywcem Twój kod i nadal orzełek :/
No bo Kaw zrobil bubla w docs, gdzie pisze ze WTW_INFO_GET_PROFILE_DIRECTORY uzywa wtwBuffer a nie jak w zaloczonym kodzie wtwMyConfigFile ;p
malcom.pl | xime - moj im;p

wlodixon

  • Gość
Re: Kody błędów wtyczek
« Odpowiedź #18 dnia: Kwiecień 05, 2009, 17:44:31 pm »
Cytat: "malcom"
Cytat: "wlodixon"
Przekopiowałem żywcem Twój kod i nadal orzełek :/
No bo Kaw zrobil bubla w docs, gdzie pisze ze WTW_INFO_GET_PROFILE_DIRECTORY uzywa wtwBuffer a nie jak w zaloczonym kodzie wtwMyConfigFile ;p

struct wtwMyConfigFile {
int structSize;
wchar_t *pBuffer;
int bufferSize;
const wchar_t * desiredExt; // moze byc NULL
};

struct wtwBuffer {
int structSize;
wchar_t *pBuffer;
int bufferSize; // w znakach!
};


Nie sprawdzalem przez wygode, ale w tym wypadku to chyba wsio ryba czy uzyje wtwBuffer czy wtwMyConfigFile

Offline malcom

  • Młodzież
  • **
    • http://malcom.pl
Re: Kody błędów wtyczek
« Odpowiedź #19 dnia: Kwiecień 05, 2009, 17:48:48 pm »
Cytat: "wlodixon"
Nie sprawdzalem przez wygode, ale w tym wypadku to chyba wsio ryba czy uzyje wtwBuffer czy wtwMyConfigFile
Nie, bo sprawdza rozmiary (ponoc) ;p
malcom.pl | xime - moj im;p

Offline Kaworu

  • Ryszard
  • Szlachta
  • *
  • Twój Koszmar Senny
    • k2t.eu
Re: Kody błędów wtyczek
« Odpowiedź #20 dnia: Kwiecień 05, 2009, 17:53:50 pm »
A kto pisal, ze sprawdza? ;p