SizeofResource
时间: 2024-05-23 19:06:39 浏览: 7
SizeofResource是一个Windows API函数,用于获取指定模块中资源的大小。它的函数原型如下:
```c
DWORD SizeofResource(
HMODULE hModule,
HRSRC hResInfo
);
```
其中,hModule参数是指定包含资源的模块的句柄,可以是一个可执行文件或者一个动态链接库(DLL)的句柄。hResInfo参数是指定资源的句柄,可以通过调用FindResource函数来获取。
SizeofResource函数返回资源的大小,以字节为单位。通过调用这个函数,我们可以获取指定资源的大小信息,从而进行相应的处理。
相关问题
windows用命令行intel编译器编译fortran代码,把读取的文件TEST.DATJ当做资源嵌入可执行文件中
可以使用以下命令将Intel Fortran代码编译为可执行文件并将TEST.DATJ文件嵌入其中:
ifort /c /Fo:resource.obj resource.f90
rc /r resource.rc
ifort /Fe:executable.exe main.f90 resource.obj
其中,resource.f90是Fortran代码文件,resource.rc是包含资源的Windows资源文件。在编译过程中,首先将Fortran代码编译为对象文件resource.obj,然后使用rc命令将资源文件编译为资源对象文件,最后将主程序main.f90和资源对象文件resource.obj链接为可执行文件executable.exe。可以使用以下Fortran代码来访问嵌入的TEST.DATJ文件:
program main
use ifwinty
implicit none
integer :: hResinfo, hResData, resSize
character(len=256) :: resName = "TEST.DATJ"
character(len=256) :: resType = "DATA"
character(len=256) :: resData
integer :: i
hResinfo = FindResourceEx(hInstance, resType, resName, 0)
hResData = LoadResource(hInstance, hResinfo)
resSize = SizeofResource(hInstance, hResinfo)
resData = c_null_char*(resSize+1)
call MoveMemory(resData, hResData, resSize)
do i = 1, resSize
write(*,*) resData(i:i)
end do
end program
其中,TEST.DATJ是要嵌入的文件名,DATA是资源类型。FindResourceEx函数用于查找资源,LoadResource函数用于加载资源,SizeofResource函数用于获取资源大小,MoveMemory函数用于将资源数据复制到字符数组resData中。
windows用命令行intel编译器读编译fortran代码,把读取的文件当做资源嵌入可执行文件中
可以使用以下命令将Intel Fortran代码编译为可执行文件并将资源嵌入其中:
ifort /c /Fo:resource.obj resource.f90
rc /r resource.rc
ifort /Fe:executable.exe main.f90 resource.obj
其中,resource.f90是Fortran代码文件,resource.rc是包含资源的Windows资源文件。在编译过程中,首先将Fortran代码编译为对象文件resource.obj,然后使用rc命令将资源文件编译为资源对象文件,最后将主程序main.f90和资源对象文件resource.obj链接为可执行文件executable.exe。可以使用以下Fortran代码来访问嵌入的资源:
program main
use ifwinty
implicit none
integer :: hResinfo, hResData, resSize
character(len=256) :: resName = "MY_RESOURCE_NAME"
character(len=256) :: resType = "MY_RESOURCE_TYPE"
character(len=256) :: resData
integer :: i
hResinfo = FindResourceEx(hInstance, resType, resName, 0)
hResData = LoadResource(hInstance, hResinfo)
resSize = SizeofResource(hInstance, hResinfo)
resData = c_null_char*(resSize+1)
call MoveMemory(resData, hResData, resSize)
do i = 1, resSize
write(*,*) resData(i:i)
end do
end program
其中,MY_RESOURCE_NAME和MY_RESOURCE_TYPE是在资源文件中定义的资源名称和类型。FindResourceEx函数用于查找资源,LoadResource函数用于加载资源,SizeofResource函数用于获取资源大小,MoveMemory函数用于将资源数据复制到字符数组resData中。