Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu arabirim, bir hata ayıklama altyapısının (DE) veya özel bağlantı noktası sağlayıcılarının programları hata ayıklamaya kaydetmesine olanak tanır.
Sözdizimi
IDebugProgramPublisher2 : IUnknown
Uygulayıcılar için Notlar
Visual Studio, birden çok işlemde hata ayıklama için görünür hale getirmek amacıyla hata ayıklanan programları kaydetmek için bu arabirimi uygular.
Arayanlar İçin Notlar
Bu arabirimi elde etmek için COM CoCreateInstance işlevini ile CLSID_ProgramPublisher çağırın (örn. Örn. DE veya özel bağlantı noktası sağlayıcısı, hata ayıklanan programları temsil eden program düğümlerini kaydetmek için bu arabirimi kullanır.
Vtable sırasına göre yöntemler
Bu arabirim aşağıdaki yöntemleri uygular:
| Metot | Açıklama |
|---|---|
| PublishProgramNode | Bir program düğümünü DE'ler ve oturum hata ayıklama yöneticisi (SDM) için kullanılabilir hale getirir. |
| UnpublishProgramNode | Artık kullanılamaması için program düğümünü kaldırır. |
| PublishProgram | Bir programı DE'ler ve SDM için kullanılabilir hale getirir. |
| UnpublishProgram | Artık kullanılamaması için bir programı kaldırır. |
| SetDebuggerPresent | Hata ayıklayıcının mevcut olduğunu belirten bir bayrak ayarlar. |
Açıklamalar
Bu arabirim, programları ve program düğümlerini DE'ler ve oturum hata ayıklama yöneticisi (SDM) tarafından kullanılmak üzere kullanılabilir hale getirir (yani, "yayımlar"). Yayımlanan programlara ve program düğümlerine erişmek için IDebugProgramProvider2 arabirimini kullanın. Visual Studio'nın bir programın hata ayıklandığını anlayabilmesinin tek yolu budur.
Gereksinimler
Üst bilgi: msdbg.h
Ad Alanı: Microsoft.VisualStudio.Debugger.Interop
Derleme: Microsoft.VisualStudio.Debugger.Interop.dll
Örnek
Bu örnek, program yayımcısının nasıl başlatılıp bir program düğümünü nasıl kaydedeceklerini gösterir. Bu, Program Düğümünü Yayımlama Öğreticisi'nden alınmıştır.
// This is how m_srpProgramPublisher is defined in the class definition:
// CComPtr<IDebugProgramPublisher2> m_srpProgramPublisher.
void CProgram::Start(IDebugEngine2 * pEngine)
{
m_spEngine = pEngine;
HRESULT hr = m_srpProgramPublisher.CoCreateInstance(CLSID_ProgramPublisher);
if ( FAILED(hr) )
{
ATLTRACE("Failed to create the program publisher: 0x%x.", hr);
return;
}
// Register ourselves with the program publisher. Note that
// CProgram implements the IDebgProgramNode2 interface, hence
// the static cast on "this".
hr = m_srpProgramPublisher->PublishProgramNode(
static_cast<IDebugProgramNode2*>(this));
if ( FAILED(hr) )
{
ATLTRACE("Failed to publish the program node: 0x%x.", hr);
m_srpProgramPublisher.Release();
return;
}
ATLTRACE("Added program node.\n");
}