@ Патрик Я гуглил после того, как написал комментарий, но забыл обновить
кажется, что vs имеет свой собственный набор IDebugInterfaces, называемый IDebugEngine1,2 и т. Д.
я никогда не кодировал расширение против, нопытается булыжить, одна обновится, когда я получу время
, в то время как вы можете прочитать эту документацию
она выглядит как c #, и опять же, это не моя сильная стороналибо
Requirements
Header: Msdbg.h
Namespace: Microsoft.VisualStudio.Debugger.Interop
Assembly: Microsoft.VisualStudio.Debugger.Interop.dll
есть два предоставленных образца, к которым вы можете обратиться здесь
Я скачал этот образец , но не дал его достаточновремя
, и кажется, что API совершенно разные по сравнению с примером Прикрепить выглядит следующим образом
/* static */
DebuggedProcess^ Worker::AttachToProcess(ISampleEngineCallback^ callback, int processId)
{
ASSERT(Worker::MainThreadId != Worker::CurrentThreadId);
HANDLE hProcess = Win32HandleCall( ::OpenProcess(
PROCESS_ALL_ACCESS,
FALSE,
processId
));
String^ nameFromHandle = GetProcessName(hProcess);
String^ processName = System::IO::Path::GetFullPath(nameFromHandle);
Win32BoolCall( ::DebugActiveProcess(
processId
) );
DebuggedProcess^ process = gcnew DebuggedProcess(Attach, callback, hProcess, processId, processName);
return process;
}