FAQ související s Wndows - Často Kladené Otázky
 


FreeBASIC Windows - Otázky:




FreeBASIC Windows - Odpovědi na Vaše otázky


Jaké IDE jsou k dispozici pro Windows?

Pro FreeBASIC jsou v tuto chvíli k dispozici 3 hlavní IDE, vytvářené speciálně pro něj:
  • FbEdit a JellyFishPro. Tato IDE vyžadují minimum konfigurace - vlastně jen zadat pracovní cestu ke kompilátoru - a pracují.
  • FBIde a FbEdit jako svazky (Editor + Kompiler), které nainstalujete jedinou operací. U těchto svazků dejte pozor, abyste si nestáhli s nejnovějším IDE zastaralý kompilátor.
  • FBIde (nemusí být aktuální, vyhněte se jeho používání, pokud je svázán se starou verzí FBCompileru).

Komerční, "široce používaná" IDE-čka, mohou být také používána s FreeBASICem, ale můžou vyžadovat složitější instalaci. Jsou užitečná pro programování ve více jazycích, protože poskytují jednotné uživatelské rozhraní.
Instrukce pro instalaci FB JFish Pro, FBIde a FbEdit jsou k dispozici zde: IDE Installation guide for Windows

Zpět na začátek

Jak se se zbavit konzoly/'DOS' okna v grafické aplikaci?
Musíte dát FreeBASICu ten správný příkaz při kompilaci programu.
  • Pokud kompilujete z příkazového řádku, stačí přidat "-s gui" na konec, asi takto "fbc mujprog.bas -s gui"
  • Pokud kompilujete v nějakém vývojovém prostředí, musíte upravit "Compiler Defaults" - Nastavení kompilátoru v něm.
    • V Jelly-Fish Pro, v menu "Compiler->Set Compiler Defaults->Compiler Options". Přidejte "-s gui" (BEZ UVOZOVEK) v této kolonce.
    • V FbEdit zvolte Windows GUI v seznamu cílů rozbalovacího menu v pravé části panelu nástrojů.

Zpět na začátek

Můj GUI program nedělá po spuštění nic / Program je zkompilován, ale vrací "permission denied error"!
Problém může souviset s předchozí otázkou. Pokud se program snaží použít PRINT a je přitom zkompilován s "-s gui", pak bude zamrzat, protože nebude k dispozici žádná konzola. Pokud proběhne pokus o provedení PRINT před otevřením/registrováním prvního okna, na obrazovce, nebo na hlavním panelu se nezobrazí nic. Probíhající program lze vidět (a zabít) pouze v kartě Procesy, ve Správci úloh. Pakliže se pokusíte o novou kompilaci předtím, než zabijete běžící proces, dostanete hlášení "Permission denied". Chyba, při které se kompilátor snaží modifikovat stále běžící .EXE.
V programech s GUI, grafickým uživatelským rozhraním Windows, nepoužívejte příkazy konzoly. Použijte MessageBox, nebo tisk do log souboru, pro chybové zprávy pro uživatele. Ujistěte se, že jste odstranili všechny PRINT na konzoli, které jste použili pro ladění, aby v konečné verzi pro kompilaci nezůstal žádný.

Zpět na začátek

Jak mohu svůj program ladit? (Debugger)
Na FreeBASIC můžete použít libovolný debugger, kompatibilní s GNU GDB. Insight Win32 debugger je uživatelsky přívětivý balík pro GDB.
  • Získej Insight z Dev-C++
  • Přejmenujte stažený soubor na "Insight.tar.bz2" a rozbalte do prázdné složky.
  • Zkompilujte svůj program s přepínačem -g.
  • Spusť <Your_Insight_Dir>\bin\usr\bin\Insight.exe ...
  • ...<File> otevřte a načtěte váš program do Insight.
  • Odtud můžete sledovat, nastavit zarážky, krokovat, zkoumat paměť a registry... Program Insight má i svůj Help.

Zpět na začátek

Proč Windows odmítne spustit můj kód, použiji-li OUT a/nebo INP?
Windows pro přístup k portům hardware vyžaduje nainstalované ovladače. FB-Win32 programy používající INP a OUT zahrnují vestavěný ovladač, který se nainstaluje pro dočasnou session. Windows umožní instalaci ovladače pouze uživateli s právy správce. To znamená, že budete muset svůj kompilovaný program spouštět s právy správce, minimálně vždy při jeho prvním spuštění v dané session Windows, a ten pak instalaci ovladače nezablokuje.
Jestli je takovéto chování nepřijatelné, můžete použít externí knihovnu (jako PortIO32), která nainstaluje ovladač portů trvale.

Zpět na začátek

Mám chybu (error) 'Cannot start blah.exe because xxxx.dll was not found.' nebo podobnou. Co chybí?
Pokoušíte se spustit program pomocí knihovny třetí strany, která je umístěna v souboru .DLL, ale není nainstalována ve vašem systému.
FreeBASIC nabízí záhlaví a obaly nutné pro použití knihoven třetích stran, nikoliv však přímo tyto knihovny., tedy skutečné runtime DLL soubory.
Tyto knihovny musíte stáhnout a nainstalovat z jejich domovské stránky. Zkuste si najít link ke knihovně ve vláknu fóra , kde je většina URL domovských stránek poskytovaných knihoven (možná všechny). Potřebujete binární soubory pro knihovny Win32. Pokud chcete vyvíjet programy s knihovnami, budete potřebovat nastudovat i jejich dokumentaci.
Při vydání zkompilovaného kódu, je dobré přidat programu doušku o použití takových knihoven třetích stran, potřebných pro spuštění.

Zpět na začátek

Spolupracuje FreeBASIC s Windows Vista/7?
Ano. Vše je sice ověřeno, ale i tak může v nějaké výjimečné situaci k chybě dojít. Neváhejte a !!! NAPIŠTE !!! na fórum. Nejen, že tím pomůžete všem, včetně sebe, ještě můžete být "za machra"!

Zpět na začátek

Kde najdu nějaké návody na programování Windows GUI?
Spousta odpovědí je v tomto vlákně fóra.
Více možnosti, včetně pokročilých, vyžadujících i nějaké studium je na odkazu MSDN - Microsoft Developers Network. Lokální instalace referenční API, umožní vyhledávat u Microsoftu pro vaši Platform SDK (a stahovat) a instalovat jen dokumentaci.

Zpět na začátek

Existují kódy Windows GUI stavěné pro FB?
Ano. Je několik dostupných projektů třetíh stran, které vytvoří kód okna Windows API, většinou vytvořených designově à la Visual Basic:
Jerry Fielden' Ezeegui (freeware) používá "grafické" textové rozhraní, které vám umožní vytvořit svůj kód. (pozn.překl. link je v době překladu nefunkční)
mrhx Software's VISG (GPL) je více klasické uživatelské rozhraní.
Méně užitečné, někdy až kontraproduktivní, mohou být grafické editory zdrojáků, generující skripty pro zdrojáky kompilátoru. Můžete použít jakýkoliv editor generování skriptů, kompatibilní s GoRC. Můžete také použít ten doporučený - FbEdit. Grafické editory zdrojáků jsou výborným pomocníkem při navrhování dialogů a menu, ale jen velmi těžko za vás budou řešit skutečné programování. Tedy to, které není jen líbivou nálepkou na monitoru, ale zato skutečně provádí požadovanou činnost.

Zpět na začátek

Viz též
Překlad: Gmisiycs 24.2.2016