c和c#托管与非托管代码中变量对应

下表列出了在 Win32 API(在 Wtypes.h 中列出)和 C 样式函数中使用的数据类型。许多非托管库包含将这些数据类型作为参数传递并返回值的函数。第三列列出了在托管代码中使用的相应的 .NET Framework 内置值类型或类。某些情况下,您可以用大小相同的类型替换此表中列出的类型。

Wtypes.h中的非托管类 非托管C 语言类型     托管类名            说明

handle void* System.IntPtr 32 位
byte unsigned char System.Byte 8 位
short short System.Int16 16 位
word unsigned short System.UInt16 16 位
int int System.Int32 32 位
uint unsigned int System.UInt32 32 位
long long System.Int32 32 位
bool long System.Int32 32 位
dword unsigned long System.UInt32 32 位
ulong unsigned long System.UInt32 32 位
char char System.Char 用 ANSI 修饰。
lpstr char* System.String 或 System.StringBuilder 用 ANSI 修饰。
lpcstr const char* System.String 或 System.StringBuilder 用 ANSI 修饰。
lpwstr wchar_t* System.String 或 System.StringBuilder 用 Unicode 修饰。
lpcwstr const wchar_t* System.String 或 System.StringBuilder 用 Unicode 修饰。
float float System.Single 32 位
double double System.Double 64 位
时间: 2024-11-01 08:06:14

c和c#托管与非托管代码中变量对应的相关文章

C#调用非托管C++DLL中的函数接口

问题描述 C#调用非托管C++DLL中的函数接口(有生成的DLL文件和Lib文件)怎么引用?引用项添加不了 解决方案 解决方案二:使用DllImport,添加引用只能针对.NET控件或COM组件.解决方案三:DllImport具体搜p/Invokehttp://www.cnblogs.com/xuqiang/archive/2010/12/21/1953355.html解决方案四:C++DLL中的函数中还调用了openCV的函数,能说一下怎么整么?解决方案五:引用3楼qq_28744297的回复

ASP中变量的使用范围问题

ASP中变量的使用范围问题 <% dim a a = 10 function aa()   dim b   b = 5   response.write(a)'这里输出的是10,函数外部定义的变量可以称之为全局变量,在任何位置都有效,包含FUNCTION内部.SUB内部,CLASS内部   a = 5 '由于a是在aa外部定义的,所以这里对A的改动会影响到全局a的值 end function call aa() response.write(a) '这里输出的是5,因为a在AA函数内被改动了.

C#调用非托管动态库中的函数

C#如何调用一个非托管动态库中的函数呢,比如用VC6写的动态库,总之C#调用动态库的过程是比Java调用DLL动态库方便快捷多了,下面举例说明这个过程. 1.创建一个非托管动态库 代码如下: //这一句是声明动态库输出一个可供外不调用的函数原型. extern "C" __declspec(dllexport) int add( int , int ); int add( int a, int b) { //实现这个函数returna+b; } 注意上面代码,一定要加上 extern&

深入探究Python中变量的拷贝和作用域问题

  这篇文章主要介绍了Python中变量的拷贝和作用域问题,包括一些赋值.引用问题,以及相关函数在Python2和3版本之间的不同,需要的朋友可以参考下 在 python 中赋值语句总是建立对象的引用值,而不是复制对象.因此,python 变量更像是指针,而不是数据存储区域, 这点和大多数 OO 语言类似吧,比如 C++.java 等 ~ 1.先来看个问题吧: 在Python中,令values=[0,1,2];values[1]=values,为何结果是[0,[...],2]? ? 1 2 3

JavaScript中变量声明有var和没var的区别

 本文来论述JavaScript中变量声明有var和没var的区别,关于Js中的变量声明的作用域是以函数为单位,所以我们经常见到避免全局变量污染的方法是 1 2 3 (function(){  // ...  })(); 在函数内部,有var和没var声明的变量是不一样的.有var声明的是局部变量,没var的,声明的全局变量,所以可以借此向外暴露接口东东. 在全局作用域内声明变量时,有var 和没var看起来都一样,我们知道,声明的全局变量,就是window的属性,究竟是否一样,我们通过ECMA

c语言-C语言中变量类型的范围会因为CPU的位数变化而不同吗?

问题描述 C语言中变量类型的范围会因为CPU的位数变化而不同吗? C语言中变量类型(short.int.long.char.float.double)的范围会因为CPU的位数变化而不同吗?这里的位数指的是什么?和操作系统的位数是同样的东西吗? 解决方案 会的. 在c语言中int型数据的长度就是CPU的位数.

php 变量销毁-php文件中变量的销毁方法

问题描述 php文件中变量的销毁方法 某一次在运行php的时候,提示内存不够,因为是新手,也不太明白变量内存方面的问题,所以这里问一下,是不是每一个php文件里的变量都需要进行手动的销毁?需要销毁的变量应该用什么方法销毁? 解决方案 unset($param); $param = null; //memory_get_usage();//查看内存情况

变量定义-关于在循环中变量的定义问题

问题描述 关于在循环中变量的定义问题 在while或者do..while循环中,可以在循环中定义变量吗?我看书上是可以的,但这样不会出现定义重复吗? 解决方案 每次一个循环函数,变量就被释放了呃,它是局部变量. 解决方案二: 变量的定义和代码的运行是两回事.好比,你函数中定义了一个变量,你代码调用了2次这个函数,你可能认为变量定义会执行2次?实际上定义是给编译器看的,代码执行中定义变量的语句根本不会起作用. 解决方案三: 不同的语言是不一样的.有的语言变量的作用域就是函数,无论是否定义在循环中,

java-多态中变量为什么不能重写。方法却能,这两者有啥不同么?

问题描述 多态中变量为什么不能重写.方法却能,这两者有啥不同么? 为什么多态时,继承.变量不能重写.方法却能重写呢?.在继承时不是变量也能改变数值么??? 解决方案 从语法的角度说,就是这么规定的. 从面向对象的角度讲,没有这个需求.方法是一个类的行为和接口,变量是一个类的状态和特征.多态的思想就是相同的接口,多种的实现.变量不是接口,不需要"多态". 好比为什么洗衣粉不能吃.从生物化学的角度看,洗衣粉有毒.从洗衣粉的用途讲,洗衣粉是洗衣服用的,不是设计拿来吃的. 解决方案二: 一个道