1月6日下午14:30我将在MSDN中文网络广播中主讲.NET中COM和COM Interop的相关基础知识。有兴趣的朋友可以通过下面的链接登记并收听此次网络广播: 公共语言运行库(CLR)开发系列课程(3):COM Interop基础 (Level 300) 讲 师:张羿 课程简介:从本次课程开始,今后几次课程将围绕COM和COM Interop技术,展开对托管代码和非托管代码之间通过COM进行互操作的讨论。本次课程将从COM基础知识开始,简单介绍进行COM Interop的所需相关基础知识和概念,为以后的课程做好准备。 推荐指数: 阅读全文>
发表于 @ 2008年12月30日 21:30:00|评论(loading...)|举报|收藏
使用过COM来访问.NET组件的朋友们应该都会注意到在对应注册表中有一个RuntimeVersion的键值: 这个RuntimeVersion的命名很容易让人误认为RuntimeVersion是用来指定该.NET组件所应该运行的CLR的版本号。实际上,这个键值的意思和字面上不是特别一致。如果我们考虑一个情况:首先,进程中先创建一个.NET类型的实例,RuntimeVersion标记为1.1,然后再创建一个.NET类型的实例,其RuntimeVersion标记为v2.0,那么到底会加载那些CLR版本呢?其实,在目前的.NET版本(Silverlight除外)中,因为无法支持在同一个进程中加载多个不同版本的CLR,因此无法支持真正的按照RuntimeVersion来加载不同的CLR版本。实际上,CLR总是加载最新的CLR版本(严格来说其实是mscoree.dll来加载)。因此,在之前的情况下,如果机器上面安装了1.1和2.0,实际上进程只加载了2.0的CLR,而没有加载1.1。如果机器上面只有1.1的话,第一个1.1的.NET会创建成功,并且启动1.1的CLR,第二个2.0的.NET阅读全文>
发表于 @ 2008年12月30日 21:17:00|评论(loading...)|举报|收藏