2008-09-13 10 views
0

IE 6/7 için bir JavaScript Profiler programının bir parçası olarak, IE'de oluşturduğum özel bir hata ayıklayıcısını yüklemem gerekiyordu. XP'de bunun iyi çalıştığını gördüm, ancak Vista'da çalışamıyorum (burada tam hikaye: http://damianblog.com/2008/09/09/tracejs-v2-rip/).IDebugProgramProvider2.GetProviderProcessData Vista'da

GetProviderProcessData çağrısı Vista'da başarısız oluyor. Herhangi birinin önerisi varmı?

sayesinde Damian

// Create the MsProgramProvider 
IDebugProgramProvider2* pIDebugProgramProvider2 = 0; 
HRESULT st = CoCreateInstance(CLSID_MsProgramProvider, 0, CLSCTX_ALL, IID_IDebugProgramProvider2, (void**)&pIDebugProgramProvider2); 
if(st != S_OK) { 
    return st; 
} 

// Get the IDebugProgramNode2 instances running in this process 
AD_PROCESS_ID processID; 
processID.ProcessId.dwProcessId = GetCurrentProcessId(); 
processID.ProcessIdType = AD_PROCESS_ID_SYSTEM; 

CONST_GUID_ARRAY engineFilter; 
engineFilter.dwCount = 0; 

PROVIDER_PROCESS_DATA processData; 

st = pIDebugProgramProvider2->GetProviderProcessData(PFLAG_GET_PROGRAM_NODES|PFLAG_DEBUGGEE, 0, processID, engineFilter, &processData); 
if(st != S_OK) { 
    ShowError(L"GPPD Failed", st); 
    pIDebugProgramProvider2->Release(); 
    return st; 
} 

cevap

1

Hata sonucunun ne olduğunu bilmek yardımcı olur. Aklıma

Olası sorunlar: senin büyük olasılıkla bazı eksik senin alma izni reddedildi Eğer

, sizin ACL Privilege requried. Yeni olanlar bazen iyi bir şekilde anlaşılamıyor, hala yeni olanları görmek için en son Platform SDK başlıklarını kontrol edin. Vizyon altında Privilege varsayılanımı ACL'nize artık atanmamış olabilir.

Bir çeşit Not Found türünde bir hatayla karşılaşırsanız, 32bit/64bit'lik bir sorun olabilir. Debbugging API'nız sadece 64 bit COM altında vista 64'de kullanılabilir. 32bit/64bit birlikte çalışma çok kafa karıştırıcı olabilir.

+0

IE8, entegre profiler desteği sağladığı için bunun üzerinde çalışmayı bıraktım - Cevabınızı cevab olarak işaretleyeceğim ve onu destekliyorum. – Damian

0

Bunları arabirimler aşina değilim, ama Vista beklenmedik arızaları bir UAC geçmiş olmak gerekebilir. Yönetici ayrıcalıklarıyla hata ayıklayıcısını başlatmayı denediniz mi?

+0

Evet, bunu denedim - öneriniz için teşekkürler. – Damian