为了便于搜索,这里尽可能保留了论坛上讨论的原文,但是这并不表示本人赞同帖子中的表述方式和观点。
CSDN 讨论总结系列:
Jiangsheng的CSDN Digest(March 4, 2006) (http://blog.csdn.net/jiangsheng/archive/2006/03/05/615714.aspx)
Jiangsheng的CSDN Digest (Jan 21 2006)( http://blog.csdn.net/jiangsheng/archive/2006/03/05/615669.aspx)
Jiangsheng的CSDN Digest (Jan 7 2006)(http://blog.csdn.net/jiangsheng/archive/2006/01/07/573288.aspx)
Jiangsheng的CSDN Digest (Jan 1 2006)http://blog.csdn.net/jiangsheng/archive/2006/01/01/568362.aspx
Jiangsheng的CSDN Digest 阅读全文>
发表于 @ 2006年04月03日 13:45:00|评论(loading...)|收藏
jiangsheng在2005年9月-10月之间参与的CSDN已结贴子的摘要阅读全文>
发表于 @ 2005年12月27日 00:16:00|评论(loading...)|收藏
jiangsheng在2005年11月-12月之间参与的CSDN已结贴子的摘要阅读全文>
发表于 @ 2005年12月24日 20:24:00|评论(loading...)|收藏
C#程序员可以用三个斜杠来开始XML格式的注释,而且编译器可以据此生成可用于自动生成帮助文档的XML文件。Visual C++ 2005中的编译器也支持了这个功能,而且对非托管函数也生效,前提是必须打开/clr和/DOC开关,并且不能使用/clr:oldSyntax开关编译。阅读全文>
发表于 @ 2005年11月05日 18:57:00|评论(loading...)|收藏
在VC.Net中使用默认设置/clr编译时,一个托管函数会产生两个入口点,一个是托管的,供托管代码调用,另外一个是非托管的,供非托管代码调用。但是函数地址,特别是虚函数指针只能有一个值,所以需要有一个默认的入口。
非托管入口点可能是所有调用的默认入口(在 Visual Studio .NET2003 中,编译器总是会选择非托管入口,但是在Visual Studio 2005中,如果参数或者返回值中包含托管类型,那么编译器会选择托管入口),而另外一个只是使用托管C++中的互操作功能对默认入口的调用。在一个托管函数被另一个托管函数调用的时候,这可能会造成不必要的托管/非托管上下文切换和参数/返回值的复制。如果函数不会被非托管代码使用指针调用,那么可以在声明函数时用VC2005新增的__clrcall修饰符阻止编译器生成两个入口。
现在用简单的冒泡排序算法来比较一下使用__clrcall之后的性能改善程度。
using namespace System;
#define ARRAY_SIZE 1000
struct bubbleBase
{
int value;
阅读全文>
发表于 @ 2005年10月08日 21:53:00|评论(loading...)|收藏
个人觉得这次MVP峰会最大的进步就是技术相关的Session数量大大增加,按照MVP专长来分类;而不像上次那样按主题分类。我只需要在VC产品组的日程里面选择就可以了,而不是像上回那样不得不去听移动开发。当然这回也有MVP不去参加VC的Session,跑去听IE和移动开发。内容方面也比上次活泼很多,Don Box还是那么幽默,比尔·盖茨也有搞笑的演出,不过他看起来比去年七月份在北京的时候老多了。
一些可能有人会感兴趣的技术信息
新的产品开发合作网站http://connect.microsoft.com/。在这里可以申请参与新产品的测试。
软件开发者可以使用Windows错误报告机制(Windows Error Reporting,简称WER,https://winqual.microsoft.com/parentorgs.asp)来获得反馈。
有人正在开发把VC项目转化成MSBuild的XML格式的工具 (
http://blogs.msdn.com/clichten/archive/2005/06/07/Building_VC_projects_with_msbu阅读全文>
发表于 @ 2005年10月08日 21:50:00|评论(loading...)|收藏
目前版本的VC2005测试版中,default关键字不仅用于指定类级别的索引器,而且也用于访问默认属性。但是奇怪的是,默认属性的原名不能访问了,也就是说,如果要把下面的代码段从托管C++移植到VC2005附带的C++/CLI,不仅需要更改指针的类型,而且要把属性的名称更改为default:
//[System::Reflection::DefaultMemberAttribute("Fields")] interface _Recordset
//托管C++语法
//extern _Recordset* results;
Fields* ResultFields=results->Fields;
//C++/CLI语法
//extern _Recordset^ results;
Fields^ ResultFields=results->default;
如果继续使用原来名字来访问属性的话,会报告编译错误:
Fields^ ResultFields=results->Fields;//C3293: 'Fields': use 'default' t阅读全文>
发表于 @ 2005年10月08日 21:47:00|评论(loading...)|收藏
I would like to keep tracking some interesting discussions, but sometimes I can not find them due to the limit of the CSDN favorite and the CSDN full text search. So again I list some interesting discussions here. For details about the discussion, go to http://search.csdn.net and search posts by their topics. For previous Q&A discussions, see my blogs Win32 & .Net Q&A and VC/MFC Q&A 200407 . A topic may appear in these Q&A blogs more than once, but I will try to cover every interesting discussi阅读全文>
发表于 @ 2005年09月13日 22:06:00|评论(loading...)|收藏
从.Net Framework 1.1开始,.Net控件可以以ActiveX的方式被集成到非托管宿主中——但是官方的支持只对于使用托管C++的MFC程序。Chris Sells在2003年3月份的MSDN杂志中描述了这样一个示例(http://msdn.microsoft.com/msdnmag/issues/03/03/WindowsForms/default.aspx)。这个示例使用的代码稍微繁琐,而且没有描述如何处理控件的事件。MFC 8.0增加了一系列这方面的支持来把这个集成过程简单化(参考http://msdn2.microsoft.com/library/ahdd1h97.aspx)。这使得在MFC程序中使用.Net中的一些比较好用的类,例如System::Windows::Forms::PropertyGrid比以前容易多了。
举例来说,要在MFC的基于对话框的程序中使用System::Windows::Forms::PropertyGrid控件,首先创建一个基于对话框的程序,添加必要的引用:
#include // MFC Windows For阅读全文>
发表于 @ 2005年03月19日 05:13:00|评论(loading...)|收藏
终于把Stan Lippman先生的这篇文章译完了。从去年4月在全球MVP峰会上拿到这篇文章的手稿到现在,差不多一年过去了。虽然当时的Visual Studio 2005还不支持一些语法,但是我和董颖涛对新的C++/CLI语言都很感兴趣,在当时就讨论过翻译的问题。之后我就开始翻译这篇文章,但是进度一直很慢——主要是杂务太多、语言上的困难(尽量避免误解和词不达意的情况,以及斟酌用词的选择)。在1月份完成了全文之后,看到了Sunhui的一篇文章(http://community.csdn.net/expert/Topicview1.asp?id=3834281),觉得附录里面讲到的一些内容或许一些人也有兴趣,所以继续翻译附录的工作,幸好现在是春假,比较有时间,终于在今天完成了。译文目前在http://blog.csdn.net/jiangsheng/archive/2004/10/18/140450.aspx可以访问,希望读者指正。
在翻译过程中得到了曾毅的帮助,得以联系到Stan Lippman先生,在此一并感谢。
文章简介:
C++/CLI代表ISO-C++标准语言的阅读全文>
发表于 @ 2005年03月17日 07:28:00|评论(loading...)|编辑|收藏