有人可以解释这段代码中的这些行吗?
Can somebody explain these lines in this code?
我在 Arwin 的源代码中看到:
fprc_func = GetProcAddress(hmod_libname,argv[2]);
if(fprc_func == NULL)
{
printf("Error: could find the function in the library!\n");
exit(-1);
}
printf("%s is located at 0x%08x in %s\n",argv[2],(unsigned int)fprc_func,argv[1]);
这里为什么用exit(-1)
而不用exit(1)
?
另外请通俗易懂地解释一下printf
语句。
失败时使用 exit(-1) 还是 exit(1) 是个人选择。
POSIX compliant code 使用 1 或 EXIT_FAILURE
表示失败
在
printf("%s is located at 0x%08x in %s\n",argv[2],(unsigned int)fprc_func,argv[1]);
打印两个字符串argv[2]
& argv[1]
(由%s
指定)和一个无符号十六进制整数fprc_func
(由0x%08x
指定) . 0x%08x
中的%08
用于设置宽度为8。参见 printf doc。
printf("%s is located at 0x%08x in %s\n",argv[2],(unsigned int)fprc_func,argv[1]);
第一个%s
指的是argv[2]
.
%08x
是指带 8 个零的十六进制形式的 fprc_func
,其中 fprc_func
是由 GetProcAddress
返回的函数指针。 (unsigned int)
将地址转换为无符号整数(从不为负)。
最后的%s
指的是argv[1]
.
有关 printf 格式的更多信息可在此处找到:
http://www.cplusplus.com/reference/cstdio/printf/
我在 Arwin 的源代码中看到:
fprc_func = GetProcAddress(hmod_libname,argv[2]);
if(fprc_func == NULL)
{
printf("Error: could find the function in the library!\n");
exit(-1);
}
printf("%s is located at 0x%08x in %s\n",argv[2],(unsigned int)fprc_func,argv[1]);
这里为什么用exit(-1)
而不用exit(1)
?
另外请通俗易懂地解释一下printf
语句。
失败时使用 exit(-1) 还是 exit(1) 是个人选择。
POSIX compliant code 使用 1 或 EXIT_FAILURE
表示失败
在
printf("%s is located at 0x%08x in %s\n",argv[2],(unsigned int)fprc_func,argv[1]);
打印两个字符串argv[2]
& argv[1]
(由%s
指定)和一个无符号十六进制整数fprc_func
(由0x%08x
指定) . 0x%08x
中的%08
用于设置宽度为8。参见 printf doc。
printf("%s is located at 0x%08x in %s\n",argv[2],(unsigned int)fprc_func,argv[1]);
第一个%s
指的是argv[2]
.
%08x
是指带 8 个零的十六进制形式的 fprc_func
,其中 fprc_func
是由 GetProcAddress
返回的函数指针。 (unsigned int)
将地址转换为无符号整数(从不为负)。
最后的%s
指的是argv[1]
.
有关 printf 格式的更多信息可在此处找到: http://www.cplusplus.com/reference/cstdio/printf/