在调试同时存在托管代码和非托管代码的程序的时候,需要特别注意选用适当的调试器的类型。因为看到类似的问题问得比较多,因此这里把做法写出来。
在托管项目中在调试之前,需要打开对非托管代码调试的功能,这个选项在项目的属性的Debug选项中存在:
<!--[if gte vml 1]><v:shapetype id="_x0000_t75"
coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe"
filled="f" stroked="f">
<v:stroke joinstyle="miter" />
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0" />
<v:f eqn="sum @0 1 0" />
<v:f eqn="sum 0 0 @1" />
<v:f eqn="prod @2 1 2" />
<v:f eqn="prod @3 21600 pixelWidth" />
<v:f eqn="prod @3 21600 pixelHeight" />
<v:f eqn="sum @0 0 1" />
<v:f eqn="prod @6 1 2" />
<v:f eqn="prod @7 21600 pixelWidth" />
<v:f eqn="sum @8 21600 0" />
<v:f eqn="prod @7 21600 pixelHeight" />
<v:f eqn="sum @10 21600 0" />
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" />
<o:lock v:ext="edit" aspectratio="t" />
</v:shapetype><v:shape id="Picture_x0020_10" o:spid="_x0000_i1027" type="#_x0000_t75"
style='width:406.5pt;height:261pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\ATField\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png"
o:title="" />
</v:shape><![endif]--><!--[if !vml]--><!--[endif]-->
打上钩即可。
如果是在Attach到一个进程的时候,需要在Attach to Process这个对话框中选择进程的类型:
<!--[if gte vml 1]><v:shape id="Picture_x0020_11"
o:spid="_x0000_i1026" type="#_x0000_t75" style='width:617.25pt;height:165pt;
visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\ATField\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png"
o:title="" />
</v:shape><![endif]--><!--[if !vml]--><!--[endif]-->
缺省是自动选择,不过这个并不是总是正确,最好自己选择正确的类型。点击Select弹出Select Code Type对话框:
<!--[if gte vml 1]><v:shape id="Picture_x0020_7"
o:spid="_x0000_i1025" type="#_x0000_t75" style='width:355.5pt;height:186.75pt;
visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\ATField\AppData\Local\Temp\msohtmlclip1\01\clip_image005.png"
o:title="" />
</v:shape><![endif]--><!--[if !vml]--><!--[endif]-->
比如,如果是调试托管和非托管混合的代码,则把Managed和Native都勾上即可 。
作者: 张羿(ATField)
Blog: http://blog.csdn.net/atfield
http://blogs.msdn.com/yizhang
转载请注明出处
分享到:
相关推荐
例如,通过托管C++(Managed Extensions for C++),开发者可以在C++项目中同时使用托管和非托管代码,这使得在已有C++代码基础上迁移到.NET平台成为可能。托管C++允许在C++中使用.NET特性,如托管类、接口和属性,...
- **混合编译环境**:可以在同一项目中同时编写托管代码(Managed Code)和非托管代码(Native Code),这使得开发者能够在充分利用.NET Framework的优势的同时,还可以利用现有C++代码库的功能。 - **更强的能力**...
P/Invoke,全称为Platform Invoke,是.NET Framework提供的一种机制,允许托管代码(Managed Code)调用非托管代码(Unmanaged Code),例如本地操作系统API或其他DLL中的函数。在.NET环境中,P/Invoke是实现.NET与...
而“Mixing_.NET_and_Native_code.DEMO.zip”和“Mixing_.NET_and_Native_code.SOURCES.zip”可能是示例代码和源代码包,供读者实践和学习如何实现混合编程。 混合.NET和本机代码的关键点包括: 1. **互操作性**:...
- **混合模式编程**:支持同时编写托管代码(Managed Code)和非托管代码(Native Code),这使得它可以无缝地集成现有的C++应用程序到.NET环境中。 - **面向对象特性**:C++/CLI继承了C++的面向对象特性,并添加...
在介绍本书之前,作者首先讨论了为什么应该选择管理代码(Managed Code)。相比于原生代码(Native Code),管理代码提供了更好的安全性、可靠性和可移植性。此外,.NET 平台还提供了一系列高级功能,如垃圾回收机制...
在Visual C++ .NET中,程序员可以使用托管代码(Managed Code)和本机代码(Native Code),这种混合编程模型极大地扩展了开发者的可能性。托管代码运行在.NET Framework的Common Language Runtime(CLR)上,具有...
描述中提到的“.net2003环境下”,这是微软的.NET Framework 2003版本,它包含了对C++/CLI(以前称为 Managed C++)的支持,允许开发者编写混合模式的代码,既包含托管代码(Managed Code)也包含本地代码(Native ...
它支持用原生代码(native code)及托管代码(managed code)开发,适用于所有Microsoft Windows平台,包括但不限于Windows桌面操作系统、Windows Mobile和Windows CE等。它还支持.NET Framework、.NET Compact ...
调试器完全支持 Microsoft.NET 托管进程和无障碍允许互操作模式调试或混合模式调试。 PEBrowseDbg64 Interactive 是一个64位的本机代码调试器,完全支持32位和64位NET程序, 包括使用预实时编译的元数据来设置断点和...
此外,它还支持C++/CLI,这是一种新的编程模型,允许C++代码与.NET Framework无缝交互,支持托管代码(Managed Code)的开发。 总的来说,《Visual C++ 2005编程实例精粹》这本书将深入探讨如何利用这些技术和工具...
1. **Managed Code**:使用.NET Compact Framework,开发者可以编写托管代码,这些代码由.NET运行时管理,提供自动内存管理、类型安全和异常处理。 2. **Native Code**:对于需要更高效性能的应用,开发者也可以选择...
PInvoke允许托管代码(Managed Code)与非托管代码(Unmanaged Code)交互,是.NET Framework与本机API之间的桥梁。 四、加载项的使用方法 1. 安装:下载并解压“Native_Browser_Addin_for_Visual_Studio.zip”...
- **托管/本机代码互操作 (Managed/native code interop)**:增强了托管代码与非托管代码之间的互操作能力。 - **F# 支持**:正式支持 F# 编程语言,为函数式编程爱好者提供了更多选择。 - **更多新特性**:除了上述...
看完了前面几段,我的朋友提出了不同的意见:C#不是Java的Clone,它只是长得有些像Java而已,其实面向对象、中间语言什么的也不是什么新玩意儿,非Sun独创,有文为证:华山论剑:C#对Java。另外他对我上一集中说...