惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
H
Help Net Security
Jina AI
Jina AI
T
The Blog of Author Tim Ferriss
宝玉的分享
宝玉的分享
博客园 - 叶小钗
Y
Y Combinator Blog
罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
WordPress大学
WordPress大学
C
Check Point Blog
Recent Announcements
Recent Announcements
IT之家
IT之家
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
美团技术团队
云风的 BLOG
云风的 BLOG
雷峰网
雷峰网
H
Hackread – Cybersecurity News, Data Breaches, AI and More
S
SegmentFault 最新的问题
MyScale Blog
MyScale Blog
Apple Machine Learning Research
Apple Machine Learning Research
Microsoft Azure Blog
Microsoft Azure Blog
V
Visual Studio Blog
B
Blog

博客园 - 杨连国

win10 IoT开发 Serial​Device 返回 null .NET Delegates: A C# Bedtime Story【转载】 C++ 和 C# 变量定义的一点区别 变量定义 接口(CLR via C# 读书笔记) 生成器模式(builder) 类型和成员基础(CLR via C#) 基本类型、引用类型、值类型——(CLR via C#) 抽象工厂模式(abstract factory) 李建忠C#面向对象设计模式纵横谈 —— 单件模式 李建忠C#面向对象设计模式纵横谈 —— 面向对象设计模式与原则 程序设计和重构的目标 OO设计原则——读《你必须知道的.NET》 输入法灰掉bug解决 半角全角Bug解决 由迭代模式想到得——用设计模式理解 .NET ASCII 表设计之妙 调用非托管Dll Invoke 和 BeginInvoke 的区别
调用VC封装的DLL时,两个类型匹配问题
杨连国 · 2008-03-31 · via 博客园 - 杨连国
 

1、  VC中的long类型,在C#中重新声明时,映射为int型。

这是历史遗留问题,在PC还是16位时,VC中的long类型标识32位整型,当PC升级到32位后,long还是表示32位,而现如今C#中的long标识64位,所以需要注意这一点。

2、  VC中的char*类型,在C#中重新声明时,映射为byte[]类型。

我看到char*的第一反应是,将其对应到C#string类型,结果程序运行后,也能执行,但不是想看到的结果。后来上网查了一下,莫衷一是,stirngref stringstringBuilderbyte[] 都有说了。查了一下 MSDNVCchar是单字节,而C#char是双字节的,所以将char*映射成string就不对头,应该应对映射成byte[],然后调整了一下自己的程序,验证了这个判断是正确的。

生活TMD需要激情,做事需冷静,说话需冷静!

遇事记着:办法总比困难多,困难和问题说不定就是机遇和转折!

历史证明:哪个环节没照顾到,哪个环节就会出问题!能自己来,就不要让别人来。