是否可以在QuickWin命令APPENDMENUQQ中调用自己的回调例程

时间:2018-09-04 08:43:24

标签: windows callback fortran intel-fortran quickwin

我正在使用Fortran中的QuickWin命令构建一个简单的数据库界面。提供命令APPENDMENUQQINSERTMENUQQ来调用回调例程。文档中有一个预定义的例程列表。

问题:是否可以调用您自己创建的例程?

我将Fortran与Intel编译器v14一起使用。

请参阅:https://software.intel.com/en-us/fortran-compiler-18.0-developer-guide-and-reference-appendmenuqq-w-s

2 个答案:

答案 0 :(得分:2)

是的,有可能。而不是预定义名称之一,而是指定一个外部子例程的名称,该子例程具有一个类型为default LOGICAL的输入参数,该参数指定是否选中特定菜单项。 [编辑:它是子例程,而不是函数。]

这在APPENDMENUQQ的《英特尔Fortran语言参考》中有所记录。您还可以查看Using Intel® Visual Fortran to Create and Build Windows*-Based Applications,以获取有关使用QuickWin和修改菜单的详细信息,尽管我注意到此处的文字并未显示用户回调的示例。

答案 1 :(得分:0)

在APPENDMENUQQ中,在第4个参数中指定回调。我不知道英特尔编译器是否提供了与其祖先MS PowerFortran相同的示例,或者它们是否在进入DEC,康柏和英特尔的旅程中迷失了。

在MS PowerFortran中,示例位于Projects目录中-例如,Projects \ Samples \ FPS \ General \ Poker。如果有,请查看scoring.f90-那里有很多回调示例。或者,如果您可以保留旧的MSDN订阅磁盘(大约在2005-2006年),则可以在其中找到它们。

回调使用一个逻辑变量。这告诉您是否选中了菜单项。大多数回调示例看起来像

subroutine xxx(unused)
logical unused
...
return
call unusedqq(unused)
end subroutine xxx

这与史蒂夫(Steve)所描述的不同-接口在从MS到Intel的过渡中可能已更改。