Autor Wątek: wxWidgets i VC 2005expres  (Przeczytany 2503 razy)

Offline Majtek

  • Użytkownik

# Styczeń 30, 2006, 12:09:12
Witam. Czy kompilował  ktoś wxWidgets-2.6.2  na kompilatorze VC 2005 bo mi kompilacja jakoś poszła ale gdy uruchamiam programy przykładowe to mam "Aplikacja została nie właściwie zainicjowana(0xc0000142)"
co s tym zrobić?

Offline Mr. Spam

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

st3tc

  • Gość
# Styczeń 30, 2006, 12:23:13
linkujesz do wigetek statycznych (w formie LIB-a) czy skompilowanych do DLL ?

// Edit : dobra edit bo mi sie nie chce czekac. Jak linkujesz statycznie, to upewnij sie, ze twje exe,dll maja wlaczona opcje dodawania manifestu w linkerku (nie chodzi o manifest xp- maga byc rozne rodzaje manifestow - ten akurat dotyczy CRT).

Jesli najpierw kompilujesz wigetki do dll, i uzywasz u siebie dll-kowych wersji, to musisz zrobic latke w wigetkach bo maja errora:

wchodzisz w katalog "src/msw" znajdujesz plik "main.cpp". W pliku trzeba odnalesc funkcje DllMain i ja wylaczyc poprzez zakomentowanie lub #if 0/#endif (zeby jej nie bylo).  Potem ponownie zrekompilowac wigetkowe dll-ki
« Ostatnia zmiana: Styczeń 30, 2006, 12:46:54 wysłana przez st3tc »

Offline Majtek

  • Użytkownik

# Styczeń 30, 2006, 13:21:58
włascie ma w posatci dll
może zrobię statycznie
edit:
Zrobiłem tak i działa ;D ;)
// ----------------------------------------------------------------------------
// WinMain
// ----------------------------------------------------------------------------

// Note that WinMain is also defined in dummy.obj, which is linked to
// an application that is using the DLL version of wxWidgets.

#if defined(_WINDLL)

// DLL entry point
#if 0
BOOL WINAPI
DllMain(HINSTANCE hModule, DWORD fdwReason, LPVOID WXUNUSED(lpReserved))
{
    // Only call wxEntry if the application itself is part of the DLL.
    // If only the wxWidgets library is in the DLL, then the
    // initialisation will be called when the application implicitly
    // calls WinMain.
#ifndef WXMAKINGDLL
    switch (fdwReason)
    {
        case DLL_PROCESS_ATTACH:
            return wxEntry(hModule);

        case DLL_PROCESS_DETACH:
            wxEntryCleanup();
            break;
    }
#else
    (void)hModule;
    (void)fdwReason;
#endif // !WXMAKINGDLL

    return TRUE;
}
#endif
//////////
#endif // _WINDLL
« Ostatnia zmiana: Styczeń 30, 2006, 14:13:21 wysłana przez Majtek »