Fortran编写Windows界面程序,备忘

本文详细描述了在学习Windows程序设计过程中遇到的三个问题:LNK2019错误的解决、IDI_WINLOGO函数调用错误及整形变量精度问题。作者提供了具体代码示例和解决方案,适用于使用IntelVisualFortran进行图形用户界面开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

本文是在学习Windows程序设计中记录所遇到的问题以及解决方法,学习书目为《Intel Visual Fortran 高级程序设计》具体内容在此书的第六章。

相关参考
Intel Visual Fortran 高级程序设计
[绘图界面库] Fortran适合科学计算,同时也能编写图形用户界面!
了解 Fortran 窗口应用程序的编码要求

一、项目选择问题

问题:编译报LNK2019错误
在这里插入图片描述

原因,创建项目时要选择Windows桌面项目。
Windows桌面的空项目
不要选择控制台。
如果选择了控制台,需要右键项目属性-连接器-系统-子系统下将“Console”改成“Windows”即可。
在这里插入图片描述

二、IDI_WINLOGO

问题:代码wc%hIcon = LoadIcon( NULL, IDI_WINLOGO)报6284错误。
在这里插入图片描述
翻译过来是:这个泛型函数引用没有匹配的特定函数。
我在网上查是,函数的输入参数不匹配。

原因:不知道
把IDI_WINLOGO改成0就能跑了。

三、整形变量wParam和lParam精度问题

问题:程序运行后没有界面

原因:整形参数wParam和lparam的长度问题
在书《Intel Visual Fortran 高级程序设计》以及[绘图界面库] Fortran适合科学计算,同时也能编写图形用户界面! 第10楼给出的代码,其中对wParam和lparam是这样定义的

integer( kind = 4 ) ::  wParam
integer( kind = 4 ) ::   lParam 

改成

integer( kind = 8 ) ::  wParam
integer( kind = 8 ) ::   lParam 

即可。
具体原因不清楚。

附:在VS2022和IVF下成功运行的代码

! examlpe 6.1
MODULE funInterface
    INTERFACE
        FUNCTION MainWndProc(hwnd, message, wParam, lParam)
            !DEC$ IF DEFINED(X86)
            !DEC$ ATTRIBUTES STDCALL, ALIAS:'MainWndProc@16'::MAinWndProc
            !DEC$ ELSE
            !DEC$ ATTRIBUTES STDCALL, ALIAS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值