4各种语言数据类型对应关系
- 格式:pdf
- 大小:129.63 KB
- 文档页数:7
c语言映射关系的【原创实用版】目录1.C 语言映射关系的基本概念2.C 语言映射关系的分类3.C 语言映射关系的应用实例4.总结正文一、C 语言映射关系的基本概念C 语言映射关系,又称为 C 语言数据类型映射关系,是指 C 语言程序中各种数据类型之间的对应关系。
在 C 语言编程过程中,开发者需要了解和掌握这些映射关系,以便正确地使用和操作各种数据类型。
二、C 语言映射关系的分类C 语言映射关系主要分为以下几类:1.基本数据类型映射关系C 语言中,基本数据类型包括整型、浮点型、字符型等,它们之间存在一定的映射关系。
例如,整型可以分为有符号整型和无符号整型,浮点型可以分为单精度浮点型和双精度浮点型等。
2.复合数据类型映射关系C 语言中的复合数据类型包括数组、结构体、联合体等,它们之间的映射关系主要体现在内存布局和访问方式上。
例如,数组类型与指针类型之间的映射关系,结构体类型中各个成员变量之间的映射关系等。
3.指针与数据类型之间的映射关系C 语言中,指针是一种特殊的数据类型,可以用来存储其他数据类型的地址。
指针与数据类型之间的映射关系主要体现在指针类型与基类型之间的转换关系上。
三、C 语言映射关系的应用实例下面举一个 C 语言映射关系应用实例:```c#include <stdio.h>int main(){int a = 5;float b = 3.14;char c = "A";printf("整型变量 a 的地址:%p", &a);printf("浮点型变量 b 的地址:%p", &b);printf("字符型变量 c 的地址:%p", &c);return 0;}```在这个例子中,我们分别声明了整型、浮点型和字符型变量,并使用取地址运算符获取它们在内存中的地址。
这里就涉及到了 C 语言数据类型之间的映射关系。
C语言各种数据类型在系统中占的字节和取值范围基本类型包括字节型(char)、整型(int)和浮点型(float/double)。
定义基本类型变量时,可以使用符号属性signed、unsigned(对于char、int),和长度属性short、long(对于int、double)对变量的取值区间和精度进行说明。
下面列举了Dev-C++下基本类型所占位数和取值范围:符号属性长度属性基本型所占位数取值范围输入符举例输出符举例-- -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%u signed -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%u unsigned -- char 8 0 ~ 2^8-1 %c %c、%d、%u [signed] short [int] 16 -2^15 ~ 2^15-1 %hdunsigned short [int] 16 0 ~ 2^16-1 %hu、%ho、%hx [signed] -- int 32 -2^31 ~ 2^31-1 %dunsigned -- [int] 32 0 ~ 2^32-1 %u、%o、%x[signed] long [int] 32 -2^31 ~ 2^31-1 %ldunsigned long [int] 32 0 ~ 2^32-1 %lu、%lo、%lx [signed] long long [int] 64 -2^63 ~ 2^63-1 %I64dunsigned long long [int] 64 0 ~ 2^64-1 %I64u、%I64o、%I64x -- -- float 32 +/- 3.40282e+038 %f、%e、%g-- -- double 64 +/- 1.79769e+308 %lf、%le、%lg %f、%e、%g -- long double 96 +/- 1.79769e+308 %Lf、%Le、%Lg几点说明:1. 注意! 表中的每一行,代表一种基本类型。
C语言提供的基本数据类型一、什么是数据类型在计算机编程中,数据类型是指一组值的集合以及定义在这组值上的一组操作。
不同的数据类型决定了数据的存储方式和可执行的操作。
C语言作为一种通用的编程语言,提供了一些基本的数据类型,用于表示不同种类的数据。
二、C语言的基本数据类型C语言提供了以下基本数据类型:1.整型(int):用于表示整数,包括正整数、负整数和零。
2.浮点型(float):用于表示小数,包括带小数点的数值。
3.字符型(char):用于表示字符,包括字母、数字和特殊字符。
4.双精度浮点型(double):用于表示更大范围的小数,具有更高的精度。
5.短整型(short):用于表示较小范围的整数,可以节省内存空间。
6.长整型(long):用于表示较大范围的整数,可以存储更大的数值。
7.无符号整型(unsigned):用于表示非负整数,可以扩大整数的范围。
三、整型数据类型整型数据类型用于表示整数,包括正整数、负整数和零。
在C语言中,整型数据类型有不同的范围和存储空间。
3.1 int类型int类型是C语言中最常用的整型数据类型,通常占用4个字节(32位),可以表示-2147483648到2147483647之间的整数。
例如:int num = 10;3.2 short类型short类型是一个较小范围的整型数据类型,通常占用2个字节(16位),可以表示-32768到32767之间的整数。
例如:short num = 100;3.3 long类型long类型是一个较大范围的整型数据类型,通常占用4个字节(32位),可以表示-2147483648到2147483647之间的整数。
例如:long num = 1000000;3.4 unsigned类型unsigned类型是一个无符号整型数据类型,可以表示非负整数。
它可以扩大整数的范围,但不能表示负数。
例如:unsigned int num = 100;四、浮点型数据类型浮点型数据类型用于表示小数,包括带小数点的数值。
1.1习题1解答1.(1)机器语言是计算机直接理解执行的语言,由一系列(二进制)指令组成,其助记符构成了汇编语言;接近人的自然语言习惯的程序设计语言为高级语言。
(2)结构化程序设计方法主要内容有:自顶向下,逐步求精;面向对象方法将现实世界中的客观事物描述成具有属性和行为的对象,抽象出共同属性和行为,形成类。
(3)C++程序开发通常要经过5个阶段,包括:编辑,编译,连接,运行,调试。
首先是编辑阶段,任务是编辑源程序,C++源程序文件通常带有.c p p扩展名。
接着,使用编译器对源程序进行编译,将源程序翻译为机器语言代码(目标代码),过程分为词法分析、语法分析、代码生成3个步骤。
在此之前,预编译器会自动执行源程序中的预处理指令,完成将其他源程序文件包括到要编译的文件中,以及执行各种文字替换等。
连接器的功能就是将目标代码同缺失函数的代码连接起来,将这个“漏洞”补上,生成可执行文件。
程序运行时,可执行文件由操作系统装入内存,然后CPU从内存中取出程序执行。
若程序运行进程中出现了错误,还在需要对程序进行调试。
(4)对象与对象之间通过消息进行相互通信。
(5)类是具有相同属性和行为的一组对象的抽象;任何一个对象都是某个类的一个实例。
(6)多态性是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。
(7)面向对象的软件开发过程主要包括面向对象的方法分析、面向对象的设计、面向对象的编程、面向对象的测试和面向对象的维护。
(8)泛型程序设计是指在程序设计时,将数据类型参数化,编写具有通用性和可重用的程序。
(9)#include<iostream>是一条预处理指令(语句),在编译(或预处理)时由编译器(或预编译器)执行,其功能是将iostream文件包含(复制)到指令处。
(10)C++中使用cin作为标准输入流对象,通常代表键盘,与提取操作符>>连用;使用cout作为标准输出流对象,通常代表显示设备,与<<连用。
java基本数据类型和引⽤数据类型的区别⼀、基本数据类型:byte:Java中最⼩的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0int:整型,⽤于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0long:长整型,在内存中占64位,即8个字节-2^63~2^63-1,默认值0Lfloat:浮点型,在内存中占32位,即4个字节,⽤于存储带⼩数点的数字(与double的区别在于float类型有效⼩数点只有6~7位),默认值0 double:双精度浮点型,⽤于存储带有⼩数点的数字,在内存中占64位,即8个字节,默认值0char:字符型,⽤于存储单个字符,占16位,即2个字节,取值范围0~65535,默认值为空boolean:布尔类型,占1个字节,⽤于判断真或假(仅有两个值,即true、false),默认值false⼆、Java数据类型基本概念:数据类型在计算机语⾔⾥⾯,是对内存位置的⼀个抽象表达⽅式,可以理解为针对内存的⼀种抽象的表达⽅式。
接触每种语⾔的时候,都会存在数据类型的认识,有复杂的、简单的,各种数据类型都需要在学习初期去了解,Java是强类型语⾔,所以Java对于数据类型的规范会相对严格。
数据类型是语⾔的抽象原⼦概念,可以说是语⾔中最基本的单元定义,在Java⾥⾯,本质上讲将数据类型分为两种:基本类型和引⽤数据类型。
基本类型:简单数据类型是不能简化的、内置的数据类型、由编程语⾔本⾝定义,它表⽰了真实的数字、字符和整数。
引⽤数据类型:Java语⾔本⾝不⽀持C++中的结构(struct)或联合(union)数据类型,它的复合数据类型⼀般都是通过类或接⼝进⾏构造,类提供了捆绑数据和⽅法的⽅式,同时可以针对程序外部进⾏信息隐藏。
c语言数据类型的分类C语言中的数据类型主要可以分为以下几类:1. 基本数据类型:基本数据类型是C语言中最基础的数据类型,用于表示简单的数据。
它们包括整型、浮点型、字符型和布尔型。
整型用于表示整数,可以分为有符号整型和无符号整型,如int和unsigned int。
浮点型用于表示带有小数部分的数值,可以分为单精度浮点型和双精度浮点型,如float和double。
字符型用于表示单个字符,如char。
布尔型用于表示逻辑值,只能取true或false。
2. 数组类型:数组是一种可以容纳多个相同类型元素的数据结构。
它们在内存中连续存储,并通过索引来访问每个元素。
数组可以是一维的,如int numbers[10],也可以是多维的,如int matrix[3][3]。
数组在声明时需要指定元素的类型和大小。
3. 指针类型:指针是C语言中非常重要的概念,它用于存储变量的内存地址。
指针类型是一种特殊的数据类型,它可以指向其他类型的数据。
通过指针,可以间接访问和修改指针指向的变量。
指针的声明需要指定指向的数据类型,如int *ptr。
指针在C语言中经常用于动态内存分配、访问数组和函数指针等场景。
4. 结构体类型:结构体是一种用户自定义的数据类型,可以包含多个不同类型的成员变量。
通过结构体,可以将相关的数据组织在一起,形成一个逻辑上的整体。
结构体的声明需要定义其成员变量的类型和名称,如struct student {char name[20]; int age;}。
结构体可以嵌套使用,也可以通过点操作符访问其成员变量。
5. 枚举类型:枚举类型用于定义一组具有离散取值的常量。
通过枚举,可以将一组相关的常量进行命名和分类。
枚举类型的定义形式为enum,如enum color {RED, GREEN, BLUE}。
在枚举类型中,每个常量都有一个对应的整数值,默认从0开始递增。
6. 联合类型:联合类型是一种特殊的数据类型,可以在相同的内存位置存储不同的数据类型。
SCLPASCAL语言(帕斯卡语言)程序设计单元:PASCAL语言的程序中,通过在开头使用uses命令,说明使用的单元,语法是:uses<单元名称>标准库单元:System、DOS、CRT、Printer、Graph、Graph3、Turbo3、Overlay单元的结构单元的程序类似于一般的源程序,结构一般如下:unit<单元名称>interfaceuses<单元名称表>;<公用说明>implementationuses<单元名称表>;<私有说明><过程和函数程序段>begin...<初始化>end.可以看出,interface 一节接就相当于C++中类的public部分,uses相当于类的继承,implementation相当于private部分,初始化部分相当于构造函数。
面向对象的程序设计:面向对象的程序设计就是利用pascal 的单元进行设计。
pascal有object关键字,就是用于面向对象的程序设计,使用起来,程序的结构更加清晰。
语法:objectField;Field;...Method;Method;end;运用Turbo Pascal系列软件作为开发系统软件与就任软件及实施科学计算和教学的有力工具,下发挥着越来越大的作用。
也是国际和全国青少年信息学奥林匹克竞赛指定的语言之一。
从历届信息学竞赛的情况看,它是最能出成绩和选手最欢迎的语言。
以后的例子就以Turbo Pascal 7.0进行程序设计。
下面我们就以一个实例来看一看Pascal程序的结构,从中认识到Pascal 语言程序的书写方式,以及其规范的标准设计方式。
例1:输入一个圆的半径,求出其圆周长。
设圆的半径为R,周长为L,我们知道公式如下:L=2πR它的Pascal程序如下:program yzhch( input, output) ; {程序首部}const {常量说明}pi=3.14159var {变量说明}l,r:real;begin {程序开始}readln(r); {输入半径}l:=2*pi*r; {计圆周长}writeln('l=',l); {输出圆周长}end. {结束程序}从以上简单的例子可以看出,Turbo Pascal程序是由程序首部、程序说明部分和程序执行部分组成。
C语言的数据类型介绍C语言的数据类型介绍C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。
下面店铺为大家带来C语言的数据类型介绍,希望大家喜欢!1.基本数据类型基本数据类型最主要的特点是,其值不可以再分解为其它类型。
也就是说,基本数据类型是自我说明的。
2.构造数据类型构造数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的。
也就是说,一个构造类型的值可以分解成若干个“成员”或“元素”。
每个“成员”都是一个基本数据类型或又是一个构造类型。
在C语言中,构造类型有以下几种:2.1.数组类型2.2.结构类型2.3.联合类型3.指针类型指针是一种特殊的,同时又是具有重要作用的数据类型。
其值用来表示某个量在内存储器中的地址。
虽然指针变量的取值类似于整型量,但这是两个类型完全不同的量,因此不能混为一谈。
4.空类型在调用函数值时,通常应向调用者返回一个函数值。
这个返回的函数值是具有一定的数据类型的,应在函数定义及函数说明中给以说明,例如在例题中给出的max函数定义中,函数头为: int max(int a,int b);其中“int ”类型说明符即表示该函数的返回值为整型量。
又如在例题中,使用了库函数 sin,由于系统规定其函数返回值为双精度浮点型,因此在赋值语句s=sin (x);中,s 也必须是双精度浮点型,以便与sin函数的返回值一致。
所以在说明部分,把s说明为双精度浮点型。
但是,也有一类函数,调用后并不需要向调用者返回函数值,这种函数可以定义为“空类型”。
其类型说明符为void。
在第五章函数中还要详细介绍。
在本章中,我们先介绍基本数据类型中的整型、浮点型和字符型。
其余类型在以后各章中陆续介绍。
对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。
在程序执行过程中,其值不发生改变的量称为常量,取值可变的量称为变量。
它们可与数据类型结合起来分类。
例如,可分为整型常量、整型变量、浮点常量、浮点变量、字符常量、字符变量、枚举常量、枚举变量。
c语言和汇编的对应关系在计算机编程领域中,C语言和汇编语言一直都是重要的编程语言。
虽然它们在语法和表达方式上有很大的区别,但是它们之间存在一种对应关系,这种对应关系在计算机科学教育和软件开发中起着重要作用。
C语言是一种高级编程语言,具有结构化的特点。
它是由Dennis Ritchie在20世纪70年代早期开发的,被广泛应用于操作系统、嵌入式系统以及应用程序开发等领域。
C语言相对于汇编语言来说,更加抽象和易于理解,具备良好的可读性和可维护性。
汇编语言则是一种低级编程语言,直接基于机器语言。
它使用符号和助记符来代替二进制指令,用于直接控制计算机硬件。
与C语言相比,汇编语言更加接近计算机硬件的实际运行方式,对硬件资源的调用和管理更为灵活。
虽然C语言和汇编语言有很大的差异,但是它们之间存在着一种对应关系,这种对应关系体现在以下几个方面:1. 语法结构的映射:C语言和汇编语言的基本语句结构有着一定的对应关系。
比如,C语言中的循环结构可以对应为汇编语言中的跳转指令和标签。
在C语言中,我们可以使用for、while循环等语句来实现循环,而在汇编语言中,我们可以使用jmp指令和标签来实现类似的功能。
2. 数据类型的映射:C语言中的数据类型和汇编语言中的数据寄存器有一定的对应关系。
C语言中的整型、浮点型等数据类型可以在汇编语言中用相应的寄存器来存储和操作。
通过对C语言变量的声明和定义,我们可以确定相应的汇编语言寄存器的用法。
3. 函数的调用:C语言中的函数调用和汇编语言中的子程序调用也有一定的对应关系。
在C语言中,我们可以使用函数调用来实现代码的模块化和重用。
而在汇编语言中,我们可以使用call指令和ret指令来实现类似的功能。
4. 编译和汇编过程:C语言可以通过编译器将源代码转换为可执行文件,而汇编语言可以通过汇编器将汇编代码转换为机器指令。
在这个转换过程中,编译器和汇编器会根据语法规则和对应关系来进行相应的转换和优化。
各种语言数据类型对应关系/*==================================================================== =========(VC函数)函数名:SN_MakeGuestCard功能描述:发行客人卡输入参数:RoomNo--柜号:1~65535IssuedTime--发卡时间:年月日时分秒,字符串格式"YYYY-MM-DD hh:mm:ss"AllowHours--允许使用的小时数,0~1000,0表示不限时GuestFlags--客人卡标志输出参数:Rom--卡号:16个字符例子:RoomNo=1,IssuedTime="2010-01-0112:30:00",AllowHours=12,GuestFlags=0返回值:错误类型====================================================================== =======*/int__stdcall SN_MakeGuestCard(char*Rom,unsigned int RoomNo,char*IssuedTime,unsigned int AllowHours,unsigned int GuestFlags);C#调用C++的DLL搜集整理的所有数据类型转换方式时间:2011-03-1112:35:32来源:网络整理作者:未知点击:62次本以为这篇搜集整理的代码会是很不错的文章,花了一天时间,搜索到最后居然出来一篇叫做"C#与C++数据类型对照表"的文章.几乎囊括掉和大部分的数据了,太打击我了.本文中有部分的数据没有测试.也有一些不错的是看了本以为这篇搜集整理的代码会是很不错的文章,花了一天时间,搜索到最后居然出来一篇叫做"C#与C++数据类型对照表"的文章.几乎囊括掉和大部分的数据了,太打击我了.本文中有部分的数据没有测试.也有一些不错的是看了上百篇网文对比整理得来的.希望有帮助.//C++中的DLL函数原型为//extern"C"__declspec(dllexport)bool方法名一(const char*变量名1,unsigned char*变量名2)//extern"C"__declspec(dllexport)bool方法名二(const unsigned char*变量名1, char*变量名2)//C#调用C++的DLL搜集整理的所有数据类型转换方式,可能会有重复或者多种方案,自己多测试//c++:HANDLE(void*)----c#:System.IntPtr//c++:Byte(unsigned char)----c#:System.Byte//c++:SHORT(short)----c#:System.Int16//c++:WORD(unsigned short)----c#:System.UInt16//c++:INT(int)----c#:System.Int16//c++:INT(int)----c#:System.Int32//c++:UINT(unsigned int)----c#:System.UInt16//c++:UINT(unsigned int)----c#:System.UInt32//c++:LONG(long)----c#:System.Int32//c++:ULONG(unsigned long)----c#:System.UInt32//c++:DWORD(unsigned long)----c#:System.UInt32//c++:DECIMAL----c#:System.Decimal//c++:BOOL(long)----c#:System.Boolean//c++:CHAR(char)----c#:System.Char//c++:LPSTR(char*)----c#:System.String//c++:LPWSTR(wchar_t*)----c#:System.String//c++:LPCSTR(const char*)----c#:System.String//c++:LPCWSTR(const wchar_t*)----c#:System.String//c++:PCAHR(char*)----c#:System.String//c++:BSTR----c#:System.String//c++:FLOAT(float)----c#:System.Single//c++:DOUBLE(double)----c#:System.Double//c++:VARIANT----c#:System.Object//c++:PBYTE(byte*)----c#:System.Byte[]//c++:BSTR----c#:StringBuilder//c++:LPCTSTR----c#:StringBuilder//c++:LPCTSTR----c#:string//c++:LPTSTR----c#:[MarshalAs(UnmanagedType.LPTStr)]string//c++:LPTSTR输出变量名----c#:StringBuilder输出变量名//c++:LPCWSTR----c#:IntPtr//c++:BOOL----c#:bool//c++:HMODULE----c#:IntPtr//c++:HINSTANCE----c#:IntPtr//c++:结构体----c#:public struct结构体{};//c++:结构体**变量名----c#:out变量名//C#中提前申明一个结构体实例化后的变量名//c++:结构体&变量名----c#:ref结构体变量名//c++:WORD----c#:ushort//c++:DWORD----c#:uint//c++:DWORD----c#:int//c++:UCHAR----c#:int//c++:UCHAR----c#:byte//c++:UCHAR*----c#:string//c++:UCHAR*----c#:IntPtr//c++:GUID----c#:Guid//c++:Handle----c#:IntPtr//c++:HWND----c#:IntPtr//c++:DWORD----c#:int//c++:COLORREF----c#:uint//c++:unsigned char----c#:byte//c++:unsigned char*----c#:ref byte//c++:unsigned char*----c#:[MarshalAs(UnmanagedType.LPArray)]byte[]//c++:unsigned char*----c#:[MarshalAs(UnmanagedType.LPArray)]Intptr//c++:unsigned char&----c#:ref byte//c++:unsigned char变量名----c#:byte变量名//c++:unsigned short变量名----c#:ushort变量名//c++:unsigned int变量名----c#:uint变量名//c++:unsigned long变量名----c#:ulong变量名//c++:char变量名----c#:byte变量名//C++中一个字符用一个字节表示,C#中一个字符用两个字节表示//c++:char数组名[数组大小]----c#:MarshalAs(UnmanagedType.ByValTStr, SizeConst=数组大小)]public string数组名;ushort//c++:char*----c#:string//传入参数//c++:char*----c#:StringBuilder//传出参数//c++:char*变量名----c#:ref string变量名//c++:char*输入变量名----c#:string输入变量名//c++:char*输出变量名----c#:[MarshalAs(UnmanagedType.LPStr)] StringBuilder输出变量名//c++:char**----c#:string//c++:char**变量名----c#:ref string变量名//c++:const char*----c#:string//c++:char[]----c#:string//c++:char变量名[数组大小]----c#:[MarshalAs(UnmanagedType.ByValTStr,SizeConst=数组大小)]public string变量名;//c++:struct结构体名*变量名----c#:ref结构体名变量名//c++:委托变量名----c#:委托变量名//c++:int----c#:int//c++:int----c#:ref int//c++:int&----c#:ref int//c++:int*----c#:ref int//C#中调用前需定义int变量名=0;//c++:*int----c#:IntPtr//c++:int32PIPTR*----c#:int32[]//c++:float PIPTR*----c#:float[]//c++:double**数组名----c#:ref double数组名//c++:double*[]数组名----c#:ref double数组名//c++:long----c#:int//c++:ulong----c#:int//c++:UINT8*----c#:ref byte//C#中调用前需定义byte变量名=new byte();//c++:handle----c#:IntPtr//c++:hwnd----c#:IntPtr//c++:void*----c#:IntPtr//c++:void*user_obj_param----c#:IntPtr user_obj_param//c++:void*对象名称----c#:([MarshalAs(UnmanagedType.AsAny)]Object 对象名称//c++:char,INT8,SBYTE,CHAR----c#:System.SByte//c++:short,short int,INT16,SHORT----c#:System.Int16//c++:int,long,long int,INT32,LONG32,BOOL,INT----c#:System.Int32//c++:__int64,INT64,LONGLONG----c#:System.Int64//c++:unsigned char,UINT8,UCHAR,BYTE----c#:System.Byte//c++:unsigned short,UINT16,USHORT,WORD,ATOM,WCHAR,__wchar_t ----c#:System.UInt16//c++:unsigned,unsigned int,UINT32,ULONG32,DWORD32,ULONG,DWORD, UINT----c#:System.UInt32//c++:unsigned__int64,UINT64,DWORDLONG,ULONGLONG ----c#:System.UInt64//c++:float,FLOAT ----c#:System.Single//c++:double,long double,DOUBLE ----c#:System.Double//Win32Types----CLR Type//Struct需要在C#里重新定义一个Struct//CallBack回调函数需要封装在一个委托里,delegate static extern int FunCallBack(string str);//unsigned char**ppImage替换成IntPtr ppImage//int&nWidth替换成ref int nWidth//int*,int&,则都可用ref int对应//双针指类型参数,可以用ref IntPtr//函数指针使用c++:typedef double(*fun_type1)(double);对应c#:public delegate double fun_type1(double);//char*的操作c++:char*;对应c#:StringBuilder;//c#中使用指针:在需要使用指针的地方加unsafe//unsigned char对应public byte/**typedef void(*CALLBACKFUN1W)(wchar_t*,void*pArg);*typedef void(*CALLBACKFUN1A)(char*,void*pArg);*bool BIOPRINT_SENSOR_API dllFun1(CALLBACKFUN1pCallbackFun1,void* pArg);*调用方式为*[UnmanagedFunctionPointer(CallingConvention.Cdecl)]*public delegate void CallbackFunc1([MarshalAs(UnmanagedType.LPWStr)] StringBuilder strName,IntPtr pArg);***/本篇文章来源于:开发学院原文链接:/2011/0311/30006.php这里是VB引用VC写的DLLVC VBChar*ch String str;str=Space(10),在写函数参数时也应该写ByVal stras String但如果是结构体,那么在VC中若是char[20],在VB中就要写成bch(21)as ByteInt LongLong LongShort IntegerUNIT LongULONG LongWORD DWORDLongWPARAM LPARAMLongWMSG UMSGLongHRESULT LongBOOL BooleanCOLOREF LongHWND,HDC,HBRUSH,HKEY LongLPSTR LPCSTRStringVARIANT_BOOL BooleanUnsigned char ByteByte ByteChar byte这里是PB引用VC写的DLL指针在PB里面可以用REF引用或用LONG型变量来代替指針VC PB(16Bit)PB(32Bit)Bool Boolean BooleanByte,Char Char CharChar*Ref string Ref stringColorref Uint UlongDouble Double DoubleDword Uint UlongFloat N/A N/AHandle Uint UlongHdc Uint UlongHfile Uint UlongHinstance Uint UlongHwnd Uint UlonghWnd Uint UlongInt Int IntLong Long LongLparam Uint UlongLpbyte Ref int Ref longLpcwstr Ref Blob Ref BlobLpcvoid Ref string Ref stringLpdword Ref Uint Ref UlongLpfiletime Ref Time Ref TimeLpint Ref Int Ref LongLpstr,Lpcstr Ref String Ref StringLpvoid Ref Struct struce_inst Ref Struct struct_instLpword Long LongMcierror Long LongPbyte Ref Int[#]Ref Long[#]Short Int IntStructure Ref Struct strucr_inst Ref Struct struct_instUint Uint UintV oid**SUBROUTINE SUBROUTINEWord Int LongWparam Uint uint在PB10.5中的调用方法为:FUNCTION int SN_MakeGuestCard(ref string sRom,int RoomNo,ref string IssTime,int AllowsHours,int GuestFlags)LIBRARY"SnMakeCard.dll" Alias for"SN_MakeGuestCard;Ansi"在用的时候也要给string类型分配空间sRom=space(17)在PB9.0中,可以这样调用FUNCTION int SN_MakeGuestCard(ref char sRoma[20],integer sRoomNo,ref char sIssTime[24],integer sAllowsHours,integer sGuestFlags)LIBRARY "SnMakeCard.dll"alias for"SN_MakeGuestCard;Ansi"这里是Delphi引用VC写的DLLdelphi和vc基本数据类型对应关系unsigned long->dwordunsigned char->bytechar->charUINT->dword如果在VC用的是char*,如果是输出则在页面定义成array[0..64]of char;型,如果是输入,则定义成string型,在调用函数时将写成PChar(string)Delphi字长/值域C++ShortInt8位有符号整型Signed char SmallInt16位有符号整形ShortLongInt32位有符号整形IntByte8位无符号整形Unsigned char Word16位无符号整形Unsigned short Integer32位有符号整形IntCardinal32位无符号整形Unsigned int Boolean真/假BoolByteBool真/假或8位无符号整形Unsigned char WordBool真/假或16位无符号整形Unsigned short LongBool真.假或32位无符号整形BOOL(WinAPI) AnsiChar8位无符号字符CharWideChar宽字编码字符Wchar_tChar8位无符号字符CharAnsiString Delphi的字符串类AnsiString类String[n]老式的Delphi字符串,SmallString<n>模板类n=1..255SmallString<255> ShortString老式的Delphi字符串,255字节String Delphi的AnsiString类AnsiStringSingle32位浮点数FloatDouble64位浮点数DoubleExtended80位浮点数Long doubleReal32位浮点数DoublePointer32位类型指针V oid*Pchar32位字符型指针Unsigned char* PAnsiChar32位ANSI型字符指针Unsigned char* Comp64位浮点数Comp类OleVariant OLE可变类型值OleVariant类。