|
好的,我改得严谨一点,可以兼容x86和x64。
另外,你可以尝试在 rc 文件里包含一个 ico 图标,和版权信息。不用写任何代码,就有效果。很有趣。
[Fortran] 纯文本查看 复制代码 01 | Logical Function WriteResourceToFile ( resType , resID , fileName ) result ( ok ) |
02 | use , intrinsic :: ISO_C_Binding |
03 | use kernel 32 , only : WORD , LPVOID , HANDLE , & |
04 | SizeofResource , LockResource , LoadResource , FindResourceEx |
05 | Character ( Len = * ) , intent ( IN ) :: resType , fileName |
06 | Integer ( LPVOID ) , intent ( IN ) :: resID |
07 | integer ( HANDLE ) :: hRes , hMem |
09 | character ( len = len_trim ( resType ) +1 ) :: myType |
10 | character , pointer :: pMem ( : ) |
13 | myType = trim ( resType ) / / c_null_char |
14 | hRes = FindResourceEx ( 0 _HANDLE , transfer ( c_loc ( myType ) , hRes ) , resID , 0 _WORD ) |
15 | if ( hRes == 0 _HANDLE ) return |
16 | hMem = LoadResource ( 0 _HANDLE , hRes ) |
17 | if ( hMem == 0 _HANDLE ) return |
18 | hMem = LockResource ( hMem ) |
19 | if ( hMem == 0 _HANDLE ) return |
20 | j = SizeofResource ( 0 _HANDLE , hRes ) |
22 | call c_f_pointer ( transfer ( hMem , cp ) , pMem , [ j ] ) |
23 | Open ( NewUnit = j , File = fileName , access = "stream" ) |
27 | End Function WriteResourceToFile |
|
|