2Pascal-新时代的Pascal
标题:
跨平台,多设备,多平台,代码写法,预定义写法,讨论
[打印本页]
作者:
wang_80919
时间:
2015-6-15 15:46
标题:
跨平台,多设备,多平台,代码写法,预定义写法,讨论
跨平台,多设备,多平台,代码写法,预定义写法,$IFDEF $IF defined 写法 ,讨论
给 WIN 系统写代码,不区分 32 64
{$IFDEF MSWINDOWS}
//代码
{$ENDIF}
给 苹果 安卓 等 Linux 的 POSIX 标准系统写代码。
{$IFDEF POSIX}
//代码
{$ENDIF}
给安卓系统写代码,不区分 32 64
{$IFDEF ANDROID}
//代码
{$ENDIF}
给苹果系统写代码,不区分 PC 和移动,也不区分 32 64
{$IFDEF MACOS}
//代码
{$ENDIF}
给苹果 PC MAC 系统写代码,不区分 32 64
{$IF Defined(MACOS) and Not Defined(IOS)}
给 苹果 iOS 系统写代码,不区分 32 64
{$IFDEF IOS}
//代码
{$ENDIF}
给 WIN 系统写代码,区分 32 64
{$IFDEF WIN32}
//代码
{$ENDIF}
{$IFDEF WIN64}
//代码
{$ENDIF}
使用
{$IFDEF XXXX} 或者 {$IFNDEF XXXX}
一般配合如下代码。
{$ELSE}
{$ENDIF}
如果想要 ELSEIF
如下写法
{$IF defined(XXXX)}
{$ELSEIF defined(YYYY)}
{$ELSEIF defined(ZZZZ) 可以配合 OR AND}
{$ENDIF}
作者:
OneChen
时间:
2015-6-15 16:43
不错,很完整!
// 为了方便阅读,可以自订义一个 OSX 平台
{$IF Defined(MACOS) and Not Defined(IOS)}
{$DEFINE MACOSONLY}
{$ENDIF}
// 使用示例
{$IFDEF MACOSONLY}
//代码
{$ENDIF}
作者:
wang_80919
时间:
2015-6-15 16:51
多谢 阿卍 来 捧场。
作者:
l_wming
时间:
2015-7-9 10:36
Delphi默认的这些define常量在什么位置?那个文件?
作者:
wang_80919
时间:
2015-7-9 10:57
l_wming 发表于 2015-7-9 10:36
Delphi默认的这些define常量在什么位置?那个文件?
只能在帮助中看到。代码中没有定义,只有使用。
作者:
红鱼儿
时间:
2015-7-27 19:02
如何区分是VCL项目还是FMX项目?
作者:
OneChen
时间:
2015-7-27 23:06
[mw_shl_code=delphi,true]{$IF DECLARED(FireMonkeyVersion)}
{$DEFINE HAS_FMX}
{$ELSE}
{$DEFINE HAS_VCL}
{$IFEND}[/mw_shl_code]
参考:
http://stackoverflow.com/questio ... nits-for-fmx-or-vcl
作者:
wang_80919
时间:
2015-7-28 13:07
多谢楼上的代码
FlyUtils.TBitmapHelper.pas
就可以 自动判断了。
{$IF DECLARED(FireMonkeyVersion)}
//FMX。
{$DEFINE FMX}
{$ELSE}
//VCL
{$ENDIF}
欢迎光临 2Pascal-新时代的Pascal (http://2pascal.com/)
Powered by Discuz! X3