前言
本文是在学习Windows程序设计中记录所遇到的问题以及解决方法,学习书目为《Intel Visual Fortran 高级程序设计》具体内容在此书的第六章。
相关参考
Intel Visual Fortran 高级程序设计
[绘图界面库] Fortran适合科学计算,同时也能编写图形用户界面!
了解 Fortran 窗口应用程序的编码要求
一、项目选择问题
问题:编译报LNK2019错误
原因,创建项目时要选择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