有些C#写的项目中会调用到C++ DLL,有时候需要调试进C++代码里去查问题,过程中经常会遇到无法命中C++代码断点的问题,在此记录一下常用的设置方式,照着设置的话基本上没什么问题:
1)确保C#和C++项目源代码在同一个解决方案里 (这一点有待商榷,后来经过验证并不一定要在同一个解决方案里);
2)确保C#项目,属性设置->调试选项->“支持非托管代码调试”打钩( 如果是VS2015 则是“启用本机代码调试”);(如果C#先是调用了好几层C# DLL,最后一层C# DLL再去调用C++ DLL,建议所有C#都要将此选项勾上,一般情况下只要确保第一和最后一层C# DLL该选项打钩即可);
3)C++项目->属性->调试->调试类型->改成混合(Mixed)(这一点也有待商榷,并不一定需要设置成Mixed);
4)将重新编译好的C++ lib和pdb文件复制到C# debug文件夹下,注意32位和64位文件夹是分开的;在64位下调试,自己却复制到32位下,是怎么也调试不了的。