Johnny Temat założony przez niniejszego użytkownika |
Różnica w działaniu programu z kompilacji przez GCC a MV C++ '10 » 2013-01-17 18:21:42 Ogólnie rzecz biorąc zależało mi na tym aby program był w miarę przenośny co umożliwia kompilacja przez GCC lecz niestety aplikacja spod GCC działa nie tak jak bym sobie tego życzył :(. W MV wszystko działa idealnie lecz do uruchomienia na innych systemach pokroju XP czy Vista wymagane są dodatkowe biblioteki typu "msvcr100.dll". W CB12 nie działa nawet przełączenie typu aplikacji z konsolowej do API. oto kawałek kodu który się wykonuje: int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { HANDLE hThread; DWORD dwThread; hThread = CreateThread( NULL, NULL,( LPTHREAD_START_ROUTINE ) KeyToTray, NULL, NULL, & dwThread ); if( hThread ) { return WaitForSingleObject( hThread, INFINITE ); } else { return 1; } }
"KeyToTray" to funkcja do przechwytywania zdarzeń typu LowLevel z klawiatury. I tu rodzi się moje pytanie po tygodniowej walce z tym problemem: czy można uruchomić program spod GCC aby konsola się nie pojawiała, tak jak to robi MV10 ? //Johnny |
|
xevuel |
» 2013-01-17 18:26:46 Użycie WinAPI powoduje że kod nie jest przenośny, niezależnie od kompilatora którego wykorzystasz. Bez wynalazków w stylu Unixowego Wine nie odpalisz tego na innych systemach... |
|
Elaine |
» 2013-01-17 18:27:15 I tu rodzi się moje pytanie po tygodniowej walce z tym problemem: czy można uruchomić program spod GCC aby konsola się nie pojawiała, tak jak to robi MV10 ? | -mwindowsUżycie WinAPI powoduje że kod nie jest przenośny, niezależnie od kompilatora którego wykorzystasz. |
GCC używa w swoim kodzie WinAPI, czy to sprawia, że GCC przestaje być przenośne? Poza tym bądźmy szczerzy, przenośność nie zawsze ma znaczenie. |
|
Johnny Temat założony przez niniejszego użytkownika |
» 2013-01-17 18:31:41 Bardziej miałem na myśli o przenośności na starsze edycje systemów z rodziny windowsów ;p a parametr "-mwindows" nie robi nic, ponieważ konsola dalej się pojawia..
Może źle to ująłem, miałem na myśli wsteczną kompatybilność z systemami xp i vista. |
|
Elaine |
» 2013-01-17 18:33:42 a parametr "-mwindows" nie robi nic, ponieważ konsola dalej się pojawia |
Podajesz to w opcjach kompilacji czy w opcjach linkowania? Powinieneś w tych drugich. |
|
Johnny Temat założony przez niniejszego użytkownika |
» 2013-01-17 18:35:14 Parametr mam podany w obydwu i w obydwu przypadkach nie działa. |
|
Mrovqa |
» 2013-01-18 17:02:32 Parametr mam podany w obydwu i w obydwu przypadkach nie działa. |
Artur@KOMPUTER ~ $ echo int main\(\){} > wtest.cpp
Artur@KOMPUTER ~ $ cat wtest.cpp int main(){}
Artur@KOMPUTER ~ $ g++ wtest.cpp -o wtest.exe -mwindows
Artur@KOMPUTER ~ $ g++ wtest.cpp -o wtest2.exe
Artur@KOMPUTER ~ $ Przy włączaniu wtest2.exe miga mi konsola, jednakże przy wtest.exe konsoli nie ma. Coś musisz źle robić. |
|
crash |
» 2013-01-27 03:28:42 A może by tak... #include <windows.h>
...
HWND window = GetConsoleWindow(); ShowWindow( window, SW_HIDE );
edit: nie chciało mi się sprawdzić, czy zadziała, więc nie odpowiadam za efekt ;p |
|
« 1 » |