Reseni : Re: Win32 Aplikace - Win98 vs WinXP - Crash

Paces Pavel paces.pavel@atlas.cz
Pátek Prosinec 23 21:29:54 CET 2005


V první řadě chci poděkovat všem (teda jen těm co měli nějakou 
konstruktivní připomínku) za jejich rady.


Jeslti Vás to zajímá tak chyba byla tahle:

Krátké zopakování:
  Byla nebyla potřeba multijazyčná aplikace A, takže se roznodlo, že A 
potáhne kůň UNICODE. Tahle aplikace měla spoustu nastavení, které leží v 
oblasti zvané *.INI, kde jsou všichni formátováni na koně UNICODE.  
Všechno to krásně fungovalo za vlády krále Wid owsXP. Ovšem jednou 
přišla teleportační anomálie, která A přenesla do země krále Wind ovs98. 
Tam se ovšem kůň zvaný UNICODE ještě nenarodil, takže A rylo nosem v 
zemi za stálého vyrušování panem Assertem() následovaným panem 
RuntimeError. (MSUE unicode extension, nebo jak se to jmenuje se mi 
nějak nedari rozchodit). Takže aby se aplikace zbavila pana Asserta, tak 
se zkusila přeplácat na MBCS. To ovšem skákal hned pan RuntimeError(). A 
teď ten důvod:

ini soubory byli stále uloženy v UNICODE a v programu je pouzita trida 
CIni od nekoho z netu. V tehle tride je pouzita funkce WinAPI:
DWORD dwCopied = ::GetPrivateProfileString(
    lpSection,
    lpKey,
    pDefault == NULL ? _T("") : lpDefault,
    psz,
    dwLen,
    m_pszPathName
    );

Kde pDefault je pointer na pole charu s defaultnim stringem ktery se 
precte v pripade, ze se v souboru nenajde prislusny klic nebo sekce. A 
jelikoz byl default string definovan takto:
#define cSTR_ERR   _T("ERROR")
tak lezel nekde v asi datove pameti. No a v MSDN je takova malinka 
poznamka ze Wi n98, se do tohodle retezce urceneho pointrem pokouseji 
zapsat nulu 0.
A toje teda reseni cele te hadanky.

Tak se teda vsichni mejte krasne a omlouvam se za tu diskriminaci s tim 
smrkem :-)
Pac.


Paces Pavel napsal(a):

>Dobrý den,
>  napsal jsem program v MFC, který kreslí moje vlastní funkce (jedná se 
>o nějaké průběhy). Tenhle program poměrně bezchybně funguje na Wind ows 
>X P. Potřebuju ale, aby fungoval i na Win dows 98. Když ten program 
>spustím na Wi ndo ws 98, tak hned napíše že : Program způsobil 
>neplatnost stránky v modulu KR NL32.DLL vyvolal vyjímku 03H na adrese 
>0002:00005C83.
>Programovací jazyk je Mic roso ft Vis ual C++, Aplikace je MFC (v7.1) 
>Dialog based, padají verze jak v UNICODE, tak v MBCS. V programu jsou 
>definovany konstanty pro urceni verze systemu na tu nejnizsi hodnotu co 
>jsem nasel.
>#define WINVER 0x0400
>#define _WIN32_WINDOWS 0x0400
>#define _WIN32_IE 0x0400
>Cilovy system je Wi n98 SE s IE 5.5.
>
>Nemáte někdo nějakou představu, na co se mám podívat? Nakopnout mě tím 
>správným směrem. Chtěl jsem si do těch 98 nainstalovat V C++, ale to VSt 
>udio se na W in98 odmitne nainstalovat .
>
>Předem děkuji za inspiraci.
>Pavel Paces
>
>Ps: Jinak vsem hodne darku pod smrkem a vsechno NEJ do toho dalsiho roku :).
>_______________________________________________
>HW-list mailing list  -  sponsored by www.HW.cz
>Hw-list@list.hw.cz
>http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
>
>
>  
>




Další informace o konferenci Hw-list