This week I was able to solve the problem. Here's how (note that the 10.0 is for Visual Studio 2010. The value will be 9.0 for VS2008. For earlier versions, see the link at the end of this article.)
- Open RegEdit
- On 32-bit Windows, go to:
HKEY_LOCAL_MACHINE\Software\Microsoft\
VisualStudio\10.0\NativeDE\StepOver
On 64-bit Windows, go to:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\NativeDE\StepOver
At least for Visual Studio 2010, there are several default functions defined. - Add a new String key. Name it CStringT.
- Edit the key and set the value to:
ATL\:\:CStringT.*
The colons must be backslashed as shown. CStringT is the template class used for CString, CStringA and CStringW. The CStringT class is shared with ATL, so that's why it's in the ATL namespace, even if you are using MFC. The "dot star" at the end matches anything for the rest of the line. - Here are a couple of other examples:
Key:CSimpleString
Value:ATL\:\:CSimpleStringT.*
Key:CComPtrBase
Value:ATL\:\:CComPtrBase.*
Key:vector
Value:std\:\:vector.*
Does not work. The registry keys are erased when Visual Studio 2010 starts.
ReplyDeleteThanks Anonymous, I'm seeing the same behavior. To be precise, it works fine until you restart VS. I'll work on this more as time allows.
ReplyDeleteThe HKCU\Software\Microsoft\
ReplyDeleteVisualStudio\10_Config\ key is a settings cache from HKLM\Software\Microsoft\
VisualStudio\10\ key and various PKGDEF files. You should be able to change the value under HKLM.
Karl, thanks for the fix! I've updated the text of the article.
ReplyDelete