之前说到了如何从C函数声明通过简单的查找替换生成一份C#的静态引用声明(C#与非托管——初体验),因为只是简单说明,所以全部采用的是基础类型匹配和自动封送.自动封送虽然能省去我们不少编码时间,但如果不理解自动封送背后的实际行为,那就如同看魔术师的黑盒子,知其然不知其所以然.而且,自动封送也不是永远有效的万能药,因此这里记录一下封送相关的理解. 非基础类型在C#与Native代码交互时需要进行封送处理,一般的封送处理方式有内存拷贝.固定内存地址,总结如下: 针对string,可以使用Marshal…