Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
[Funkce přidružená k této stránce DirectShow je starší funkce. Byla nahrazena MediaPlayer, MMFMediaEnginea Audio/Video Capture v Media Foundation. Tyto funkce jsou optimalizované pro Windows 10 a Windows 11. Microsoft důrazně doporučuje, aby nový kód používal MediaPlayer, MMFMediaEngine a Audio/Video Capture v Media Foundation místo DirectShow, pokud je to možné. Microsoft navrhuje, aby se stávající kód, který používá starší rozhraní API, přepsal, aby se nová rozhraní API používala, pokud je to možné.]
Základní třídy DirectShow poskytují několik maker pro zobrazení informací o ladění.
| Funkce | Popis |
|---|---|
| DbgCheckModuleLevel | Zkontroluje, jestli je pro dané typy zpráv a úroveň povolené protokolování. |
| DbgDumpObjectRegister | Zobrazí informace o aktivních objektech. |
| DbgInitialise | Inicializuje knihovnu ladění. |
| DbgLog | Odešle řetězec do výstupního umístění ladění, pokud je protokolování povolené pro zadaný typ a úroveň. |
| DbgOutString | Odešle řetězec do výstupního umístění ladění. |
| DbgSetModuleLevel | Nastaví úroveň protokolování pro jeden nebo více typů zpráv. |
| DbgTerminate | Vyčistí knihovnu ladění. |
| DisplayType | Odešle informace o typu média do výstupního umístění ladění. |
| DumpGraph | Odešle informace o grafu filtru do výstupního umístění ladění. |
| GuidNames | Globální pole, které obsahuje řetězce představující identifikátory GUID definované v Uuids.h. |
| NAME | Vygeneruje řetězec jen pro ladění. |
| NOTE | Odešle řetězec do výstupního umístění ladění. |
| připomenout | Vygeneruje připomenutí v době kompilace. |
klíče registru
Výstupní funkce ladění v DirectShow používá sadu klíčů registru. Umístění těchto klíčů registru závisí na verzi Systému Windows.
Předsystému Windows Vista jsou ladicí klíče umístěny pod následující cestou:
HKEY_LOCAL_MACHINE\SOFTWARE\Ladění
V systému Windows Vista nebo novější jsou umístěny pod následující cestou:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectShow\Debug
U filtrů třetích stran závisí umístění na verzi DirectShow Base Classes byla použita k sestavení filtru. Verze zahrnutá v sadě Windows SDK pro Windows Vista používá novější cestu. Předchozí verze používaly starší cestu.
V poznámkách, které následují, se popisek <DebugRoot> používá k označení těchto dvou cest. V závislosti na verzi systému Windows nebo verze základních tříd nahraďte správnou cestu.
protokolování ladění
DirectShow definuje několik typů zpráv, které jsou uvedené v následující tabulce.
| Hodnota | Popis |
|---|---|
| LOG_ERROR | Oznámení o chybě |
| LOG_LOCKING | Uzamykání a odemčení důležitých oddílů |
| LOG_MEMORY | Přidělení paměti a vytváření a zničení objektů. |
| LOG_TIMING | Měření časování a výkonu |
| LOG_TRACE | Obecné trasování volání |
| CUSTOM1 prostřednictvím CUSTOM5 | K dispozici pro vlastní ladicí zprávy |
Každá funkce protokolování ladění DirectShow určuje typ zprávy a úroveň protokolu. Ladicí zpráva se zobrazí pouze v případě, že aktuální úroveň ladění pro daný typ zprávy je rovna nebo větší než úroveň zadaná ve funkci protokolování. Jinak se zpráva ignoruje.
Například následující kód vypíše řetězec "Toto je ladicí zpráva", pokud LOG_TRACE úroveň je 3 nebo vyšší:
DbgLog((LOG_TRACE, 3, TEXT("This is a debug message")));
Každý modul může pro každý typ zprávy nastavit vlastní úroveň ladění. (Modul je knihovna DLL nebo spustitelný soubor, který lze načíst pomocí funkce LoadLibrary.) Úrovně ladění modulu se zobrazí v registru pod následujícím klíčem:
HKEY_LOCAL_MACHINE\<DebugRoot>\<ModuleName>\<MessageType>
where <Message Type> is the message type minus the initial "LOG_"; Například uzamčení pro LOG_LOCKING zprávy. Při načtení modulu najde knihovna ladění úrovně protokolování modulu v registru. Pokud klíče registru neexistují, knihovna ladění je vytvoří.
Modul může také nastavit vlastní úrovně za běhu pomocí funkce DbgSetModuleLevel. Pokud chcete odeslat zprávu do výstupu ladění, zavolejte makro DbgLog. Následující příklad vytvoří zprávu typu 3 typu LOG_TRACE:
Můžete také zadat globální úrovně protokolování s následujícím klíčem registru:
\HKEY_LOCAL_MACHINE\<DebugRoot>\GLOBAL\<Message Type>
Ladicí knihovna používá úroveň vyšší, globální úroveň nebo úroveň modulu.
umístění výstupu ladění
Umístění výstupu ladění je určeno jiným klíčem registru:
HKEY_LOCAL_MACHINE\<>\<Modil name>\LogToFile
Pokud je hodnota tohoto klíče Console, výstup přejde do okna konzoly. Pokud je hodnota Deb, Debug, Debuggernebo prázdný řetězec, výstup přejde do okna ladicího programu. V opačném případě se výstup zapíše do souboru určeného klíčem registru.
Než spustitelný soubor použije knihovnu ladění DirectShow, musí volat funkci DbgInitialise. Potom musí volat funkci DbgTerminate. Knihovny DLL nemusí tyto funkce volat, protože vstupní bod knihovny DLL (definovaný v knihovně základních tříd) je volá automaticky.
Související témata