Fortran Coder
标题:
!DEC$ 想问下以这个开头的语句是什么意思,十分感谢啊
[打印本页]
作者:
warriorVIP
时间:
2018-12-11 16:23
标题:
!DEC$ 想问下以这个开头的语句是什么意思,十分感谢啊
!DEC$ FREEFORM
!/********************* Prototypes ***********************/
interface
integer*4 function MainWndProc ( hwnd, mesg, wParam, lParam )
!DEC$ IF DEFINED(_X86_)
!DEC$ ATTRIBUTES STDCALL, ALIAS : '_MainWndProc@16' :: MainWndProc
!DEC$ ELSE
!DEC$ ATTRIBUTES STDCALL, ALIAS : 'MainWndProc' :: MainWndProc
!DEC$ ENDIF
integer*4 hwnd
integer*4 mesg
integer*4 wParam
integer*4 lParam
end function
end interface
我的认知中这个!开头的语句应该是注释啊
作者:
fcode
时间:
2018-12-11 18:26
这种叫做 “Compiler Directives”(编译指导)
用来告知编译器一些“语法之外的事情”
是不规范的用法。所以借用注释来实现,这样,当用别的编译器编译时,会当成注释处理。(而不至于报错)
它的具体用法你可以看编译器的说明书。
!DEC$ IF DEFINED(_X86_) 如果定义了 X86 宏
!DEC$ ATTRIBUTES STDCALL, ALIAS : '_MainWndProc@16' :: MainWndProc 告知编译器,MainWndProc 函数采用 stdcall 调用协定,符号名为 _MainWndProc@16
!DEC$ ELSE 否则
!DEC$ ATTRIBUTES STDCALL, ALIAS : 'MainWndProc' :: MainWndProc 与上文类似
!DEC$ ENDIF
这些用法是为了保证编译出来的二进制接口,与 Windows API 保持一致。这样,Windows上的运行时库(是C语言写的,且采用 stdcall 调用协定)可以正确识别。
作者:
warriorVIP
时间:
2018-12-11 18:35
fcode 发表于 2018-12-11 18:26
这种叫做 “Compiler Directives”(编译指导)
用来告知编译器一些“语法之外的事情”
好嘞,多谢了
欢迎光临 Fortran Coder (http://bbs.fcode.cn/)
Powered by Discuz! X3.2