为什么SetFilePointerEx的第二个参数在编译时给我一个不兼容的类型错误?

时间:2018-01-22 04:48:07

标签: c windows winapi

LARGE_INTEGER li;
    li.QuadPart = 0;
    result = SetFilePointerEx(
            hFile,
            li.QuadPart,
            NULL,
            FILE_BEGIN
        );

我首先尝试在其中放置一个普通的0,但后来意识到arg 2应该是一个LARGE_INTEGER类型,但这仍然给我一个编译时错误,其中指出:

  

argtester.c:34:11:错误:' SetFilePointerEx'参数2的不兼容类型     result = SetFilePointerEx(

1 个答案:

答案 0 :(得分:4)

使用整个LARGE_INTEGER代替其QuadPart字段作为参数:

LARGE_INTEGER li;
li.QuadPart = 0;
result = SetFilePointerEx(
        hFile,
        li,
        NULL,
        FILE_BEGIN
);

然后TYPE_ERROR应该消失。