Delphi VS C语言类型转换对照
Delphi VS C语言类型转换对照
C/C++ Type | ObjectPascal Type |
unsigned short [int] | Word |
[signed] short [int] | SmallInt |
unsigned [int] | Cardinal { 3.25 fix } |
[signed] int | Integer |
UINT | LongInt { or Cardinal } |
WORD | Word |
DWORD | LongInt { or Cardinal } |
unsigned long | LongInt { or Cardinal } |
unsigned long int | LongInt { or Cardinal } |
[signed] long | LongInt |
[signed] long int | LongInt |
char | Char |
signed char | ShortInt |
unsigned char | Byte |
char* | PChar |
LPSTR or PSTR | PChar |
LPWSTR or PWSTR | PWideChar { 3.12 fix } |
void* | Pointer |
BOOL | Bool |
float | Single |
double | Double |
long double | Extended |
LP,NP,PP,P prefix: if first = T then T becomes P else P prefix | |
HANDLE | THandle |
FARPROC | TFarProc |
ATOM | TAtom |
TPOINT | TPoint |
TRECT | TRect |
COLORREF | TColorRef |
OFSTRUCT | TOFStruct |
DEBUGHOOKINFO | TDebugHookInfo |
BITMAP | TBitMap |
RGBTRIPLE | TRGBTriple |
RGBQUAD | TRGBQuad |
BITMAPCOREHEADER | TBitmapCoreHeader |
BITMAPINFOHEADER | TBitmapInfoHeader |
BITMAPINFO | TBitmapInfo |
BITMAPCOREINFO | TBitmapCoreInfo |
BITMAPFILEHEADER | TBitmapFileHeader |
HANDLETABLE | THandleTable |
METARECORD | TMetaRecord |
METAHEADER | TMetaHeader |
METAFILEPICT | TMetaFilePict |
TEXTMETRIC | TTextMetric |
NEWTEXTMETRIC | TNewTextMetric |
LOGBRUSH | TLogBrush |
LOGPEN | TLogPen |
PATTERN | TPattern { TLogBrush } |
PALETTEENTRY | TPaletteEntry |
LOGPALETTE | TLogPalette |
LOGFONT | TLogFont |
ENUMLOGFONT | TEnumLogFont |
PANOSE | TPanose |
KERNINGPAIR | TKerningPair |
OUTLINETEXTMETRIC | TOutlineTextMetric |
FIXED | TFixed |
MAT2 | TMat2 |
GLYPHMETRICS | TGlyphMetrics |
POINTFX | TPointFX |
TTPOLYCURVE | TTTPolyCurve |
TTPOLYGONHEADER | TPolygonHeader |
ABC | TABC |
RASTERIZER_STATUS | TRasterizer_Status |
MOUSEHOOKSTRUCT | TMouseHookStruct |
CBTACTIVATESTRUCT | TCBTActivateStruct |
HARDWAREHOOKSTRUCT | THardwareHookStruct |
EVENTMSG | TEventMsg |
WNDCLASS | TWndClass |
MSG | TMsg |
MINMAXINFO | TMinMaxInfo |
SEGINFO | TSegInfo |
ACCEL | TAccel |
PAINTSTRUCT | TPaintStruct |
CREATESTRUCT | TCreateStruct |
CBT_CREATEWND | TCBT_CreateWnd |
MEASUREITEMSTRUCT | TMeasureItemStruct |
DRAWITEMSTRUCT | TDrawItemStruct |
DELETEITEMSTRUCT | TDeleteItemStruct |
COMPAREITEMSTRUCT | TCompareItemStruct |
WINDOWPOS | TWindowPos |
WINDOWPLACEMENT | TWindowPlacement |
NCCALCSIZE_PARAMS | TNCCalcSize_Params |
SIZE | TSize |
MENUITEMTEMPLATEHEADER | TMenuItemTemplateHeader |
MENUITEMTEMPLATE | TMenuItemTemplate |
DCB | TDCB |
COMSTAT | TComStat |
MDICREATESTRUCT | TMDICreateStruct |
CLIENTCREATESTRUCT | TClientCreateStruct |
MULTIKEYHELP | TMultiKeyHelp |
HELPWININFO | THelpWinInfo |
CTLSTYLE | TCtlStyle |
CTLtype | TCtltype |
CTLINFO | TCtlInfo |
DDEADVISE | TDDEAdvise |
DDEDATA | TDDEData |
DDEPOKE | TDDEPoke |
DDEAACK | TDDEAck |
DEVMODE | TDevMode |
KANJISTRUCT | TKanjiStruct |
It's also nice to have access to the translation of the special WINDOWS.H types, which is already done by Borland, and can be found in WINTYPES.PAS (it's a rewarding experience to compare these two files with each other - you'll learn a lot about C and Pascal conversion issues).
Now that we've handled the standard built-in (and Windows) types, let's look at the C type definition of WING_DITHER_TYPE that is present in the WING.H file.
typedef enum WING_DITHER_TYPE
{
WING_DISPERSED_4x4,
WING_DISPERSED_8x8,
WING_CLUSTERED_4x4
} WING_DITHER_TYPE;
This is a so -called enumerated type, and can be translated into an ObjectPascal enumerated type very easily:
type
WING_DITHER_TYPE =
(WING_DISPERSED_4x4,
WING_DISPERSED_8x8,
WING_CLUSTERED_4x4);
While most C DLL header files contain only constant definitions (of the form #define XYZ value) and function prototypes, type definitions are also found,
作者:Jeremy.Wu
出处:https://www.cnblogs.com/jeremywucnblog/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
Delphi VS C语言类型转换对照的更多相关文章
- Delphi与C语言类型转换对照
When converting C function prototypes to Pascal equivalent declarations, it's important to substitut ...
- php 、asp、 java、 c#、 delphi之间的语言对照
PHP是一种跨平台的server端的嵌入式脚本语言.它大量地借用C,Java和Perl语言的语法, 并耦合PHP自己的特性,使WEB开发人员能够高速地写出动态产生页面. 它支持眼下绝大多数数据库. 另 ...
- Go 语言类型转换
类型转换用于将一种数据类型的变量转换为另外一种类型的变量.Go 语言类型转换基本格式如下: type_name(expression) type_name 为类型,expression 为表达式. 实 ...
- Go语言类型转换
类型转换用于将一种数据类型的变量转换为另外一种类型的变量. Go语言类型转换基本格式如下:表达式 T(v) 将值 v 转换为类型 T . Go语言各种类型转换及函数的高级用法:strconv包实现了基 ...
- GO语言学习(十七)Go 语言类型转换
Go 语言类型转换 类型转换用于将一种数据类型的变量转换为另外一种类型的变量.Go 语言类型转换基本格式如下: type_name(expression) type_name 为类型,expressi ...
- C语言类型转换原理
C语言类型转换 int a; a=1.23 这里把1.23赋值给a发生了隐式转换,原理如下: int a; float b=3.14; a=b; b赋值给a的过程:首先找一个中间变量是a的类型(该例中 ...
- C语言---类型转换
itoa 功 能:把一整数转换为字符串 用 法:char *itoa(int value, char *string, int radix); 详细解释:itoa是英文integer to array ...
- c语言类型转换注意事项
转载自: http://blog.csdn.net/zhuimengzh/article/details/6728492 1.隐式转换 C在以下四种情况下会进行隐式转换: 1.算 ...
- 执行效率做比较,Go、python、java、c#、delphi、易语言等
比较环境,在win7 64位,比较各种语言的整数型运算,下面的比较只作为单项比较.具体方式,40000*40000遍历相加.为了防止编译器优化,生成一个随机数. 1:c#,在NET2.0框架下作为 ...
随机推荐
- go mod 无法自动下载依赖包的问题
go 11以后启用了go mod功能,用于管理依赖包. 当执行go mod init生成go.mod文件之后,golang在运行.编译项目的时候,都会检查依赖并下载依赖包. 在启动了go mod之后, ...
- .Net集合详解
前言 前面几篇文章讲了泛型.讲了数组,都有提到集合,这一节重点对集合进行详细解说.本文主要使用各种集合类型.以至于评估其性能,针对不同的场景选择不同的集合使用. 集合分类详解 一.列表 列表的创建 v ...
- scrapyd schedule.json setting 传入多个值
使用案例: import requests adder='http://127.0.0.1:6800' data = { 'project':'v1', 'version':'12379', 'set ...
- EnjoyingSoft之Mule ESB开发教程第六篇:Data Transform - 数据转换
目录 1. 数据转换概念 2. 数据智能感知 - DataSense 3. 简单数据转换组件 3.1 Object to JSON 3.2 JSON to XML 3.3 JSON to Object ...
- Serilog 自定义Enricher 来增加记录的信息
Serilog 自定义Enricher 来增加记录的信息 Intro Serilog 是 .net 里面非常不错的记录日志的库,结构化日志记录,而且配置起来很方便,自定义扩展也很方便 Serilog ...
- koa2图片上传成功后返回服务器地址,实时显示服务器图片
版本:node(8.5.0); koa(2.4.1); koa-router(7.3.0); koa-body(2.5.0); koa-static(4.0.2); 代码实现 const fs = r ...
- Java虚拟机(二)-对象创建
这一篇大致说明一下,对象在Java堆中对象分配.内存布局以及访问定位 1.对象的创建 虚拟机在遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引 ...
- JSmooth 将java代码打包成exe
JSmooth 将java代码打包成exe 前言 java代码写了这么多了,但由于jdk的限制,我只能在jdk电脑上运行项目.所以最近在研究打包exe这个问题,今天终于实现了. JSmooth下载 前 ...
- ImageLoader_显示图片
public class MainActivity extends AppCompatActivity { private ListView lv; private List<Bean.Resu ...
- js拖拽上传图片
有时候,在开发中,需要遇到拖拽上传图片的需求,即从磁盘选中一张或多张图片,然后按着鼠标把图片拖动到页面上指定的区域,实现图片的上传. 1.后端上传图片的接口 我是之前用vue写一个简单的后台系统的时候 ...