小编Cod*_*ake的帖子

在Windows 7中调试shell扩展

我正在尝试使用Visual C++ 2008在Windows 7中调试shell扩展(IContextMenu).我在注册表中设置了DesktopProcess = 1并将主机应用程序设置为explorer.exe.但是当我启动调试器时,它会启动explorer.exe然后从进程中分离.不调用shell扩展的DllMain.

在Windows XP + Visual C++ 2008中,在调试器中启动的相同代码具有完全相同的设置,没有任何问题.

有任何想法如何在Win7中调试shell扩展?

c++ debugging shell-extensions windows-7

13
推荐指数
2
解决办法
5007
查看次数

下面的代码值得单元测试吗?

我是单元测试的新手.我不知道是否值得对下面的代码进行单元测试.这是用Delphi编写的示例方法:

function TCoreAudio.CreateAudioClient: IAudioClient;
var
  MMDeviceEnumerator: IMMDeviceEnumerator;
  MMDevice: IMMDevice;
  MixFormat: PWaveFormatEx;
  AudioClient: IAudioClient;
  HR: HResult;
begin
  Result := nil;

  if CheckWin32Version(6, 0) then // The Core Audio APIs were introduced in Windows Vista.
  begin
    HR := GetInstance().CoCreateInstance(CLSID_MMDeviceEnumerator, nil, CLSCTX_ALL,
      IMMDeviceEnumerator, MMDeviceEnumerator);
    if Failed(HR) then
      Exit;
    HR := MMDeviceEnumerator.GetDefaultAudioEndpoint(eRender, eConsole, MMDevice);
    if Failed(HR) then
      Exit;
    HR := MMDevice.Activate(IAudioClient, CLSCTX_ALL, nil, AudioClient);
    if Failed(HR) then
      Exit;
    HR := AudioClient.GetMixFormat(MixFormat);
    if Failed(HR) then
      Exit;
    HR := AudioClient.Initialize(AUDCLNT_SHAREMODE_SHARED, 0, 0, 0, MixFormat, nil);
    CoTaskMemFree(MixFormat); …
Run Code Online (Sandbox Code Playgroud)

delphi tdd unit-testing

1
推荐指数
1
解决办法
894
查看次数