摘要:sizeof在非Unsafe环境下只能用于预定义的一系列类型,如Int,Short等等。而在Unsafe环境下,sizeof可以被用于值类型,但是值类型中不可以有引用类型,否则C#编译器会报错: error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('Si...
阅读全文
11 2008 档案
摘要:前几天写代码的时候遇到了一个十分诡异的编译错误。对于下面的代码,你能够发现问题在那里吗? 1: #define test(a, b, c) \ 2: a; \ 3: if (b) \ 4: c 编译器给出了下面这个错误信息: testdefine.cpp(8) : error C205...
阅读全文
摘要:上次我们谈到了.NET 4.0中为什么要引入Type Equivalency这样一个新功能,这次我们来看一个比较简单的一个程序: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Office.Interop.Excel; namespa...
阅读全文
摘要:在.NET 4.0 CTP中,最引人注目的Interop的改进当属Type Equivalency,又称之为NO PIA。在介绍如何使用这个新特性之前,我觉得还是应该从历史讲起,探究我们究竟要解决什么样子的问题,过去采用了什么样的解决办法,以及这些办法都有那些问题。 在.NET中,为了访问COM对象,需要定义一系列托管的Interface、Struct、以及class。有了类型库(TypeLibr...
阅读全文