Red语言学习系列(2)

# Red/System脚本的实际编写

# 写你的第一个Red/System脚本

Red/System []
print "Hello Bitbegin!"

把这段code复制到"HelloBitbegin.reds"文本文件中,然后使用 Red.exe -c HelloBitbegin.reds编译出HelloBitbegin.exe。在命令行下执行HelloBitbegin.exe即可看到:

Hello Bitbegin!

这里 Red/System []是必不可少的,Red工具以此来识别语法使用Red/System

# 访问动态链接库

通常我们写的应用程序都需要调用操作系统的动态链接库,Red/System提供了相应的访问动态链接库的机制。

#import [
	"kernel32.dll" stdcall [
		GetCommandLine: "GetCommandLineA" [
			return:		[c-string!]
		]
		SetErrorMode: "SetErrorMode" [
			mode		[integer!]
			return:		[integer!]
		]
		SetUnhandledExceptionFilter: "SetUnhandledExceptionFilter" [
			handler 	[function! [record [SEH_EXCEPTION_RECORD] return: [integer!]]]
		]
		GetStdHandle: "GetStdHandle" [
			type		[integer!]
			return:		[integer!]
		]
		WriteFile: "WriteFile" [
			handle		[integer!]
			buffer		[c-string!]
			len			[integer!]
			written		[int-ptr!]
			overlapped	[integer!]
			return:		[integer!]
		]
	]
]

这些代码来自 "win32.reds"。

这就像C语言中的函数声明。

# Red/System的命名空间

在完成Red/System脚本时,最好加上命名空间功能,防止出现命名冲突。

Example:

func-a: context [
    b: 123    
]	    
print func-a/b