尝试从邮筒读取时出现C读取文件错误87

乔纳森·朱利叶斯·斯文森

我正在尝试设置一个我可以写入和读取的邮筒。

但是,当我调用ReadFile时出现错误87。我尝试了来自MSDN的不同方法,但仍然收到错误87。

为了简化代码,我在代码中删除了许多错误处理。

这是我从主打来的电话。

hMailslot= mailslotCreate("\\\\.\\mailslot\\myslot"); //works
hMailslot=mailslotConnect("\\\\.\\mailslot\\myslot"); //works
    mailslotWrite(hMailslot,w, lstrlen(w)+1)*sizeof(CHAR); //works
    mailslotRead(hMailslot); //Error 87 invalid parameter
    mailslotClose(hMailslot); //?

这是我的代码的简化版本。

#define TIME_OUT    MAILSLOT_WAIT_FOREVER 

HANDLE mailslotCreate (char *name) {
    HANDLE H = (HANDLE)CreateMailslot(name,0,TIME_OUT,(LPSECURITY_ATTRIBUTES) NULL);
    return H;
}

HANDLE mailslotConnect (char * name) {

    HANDLE H = CreateFile(name,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
            return H;
}

int mailslotWrite(HANDLE mailSlot,void *msg,int msgSize) {

   DWORD cbWritten; 

   WriteFile(mailSlot, msg, msgSize, &cbWritten, (LPOVERLAPPED) NULL); 

   return cbWritten;

}

int mailslotRead (HANDLE mailbox) {

    DWORD cbMessage, cMessage, cbRead; 
    BOOL fResult; 
    LPTSTR Message;

    fResult =GetMailslotInfo(mailbox,(LPDWORD) NULL,&cbMessage,&cMessage,(LPDWORD)NULL);

     if (!fResult) //Works
    { 
        printf("GetMailslotInfo failed with %d.\n", GetLastError()); 
    }

        Message = (LPTSTR) calloc(cbMessage,sizeof(char)); 
        Message[0] = '\0'; 


            fResult = ReadFile((HANDLE)mailbox,(LPVOID)Message,(DWORD)cbMessage,LPDWORD)&cbRead,(LPOVERLAPPED) NULL); 

        if (!fResult)  //Error 87
        { 
            printf("ReadFile failed with %d.\n", GetLastError()); 
            free(Message); 
                 return 0;
        }
        return cbRead;
}

int mailslotClose(HANDLE mailSlot){
    return CloseHandle(mailSlot);
}
彼得·M

根据Microsoft,Error 87ReadFile()或WriteFile()的ERROR_INVALID_PARAMETER

因此,这些参数有问题。

同样来自MS:CreateMailSlot()CreateFile()ReadFile()定义

我一直在研究“使用邮槽”,并试图将其与您所拥有的进行比较。我能看到的唯一区别是,即使他们使用创建文件FILE_ATTRIBUTE_NORMAL,并使用进行写入(LPOVERLAPPED) NULL,他们OVERLAPPED ov在读取文件时仍会提供一个,即使他们的文档说它不是必需的。

但是我不知道这是否是真正的问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

尝试从邮筒读取时出现C读取文件错误87

来自分类Dev

读取文件C ++时出现奇怪的错误

来自分类Dev

尝试让熊猫读取我的json文件时出现错误

来自分类Dev

错误:尝试从文件到数组读取值时出现NoSuchElementException

来自分类Dev

尝试在 C 中读取迷宫文本文件时出现 malloc 错误

来自分类Dev

从文件读取大数组时出现分段错误。C ++ / gcc

来自分类Dev

读取文件时出现NumberFormatException错误

来自分类Dev

尝试同时打开多个文件以读取文件时出现分段错误(Core Dumped)

来自分类Dev

尝试从URL读取标记文件时出现斯坦福POS标记错误

来自分类Dev

尝试播放DVD时出现“ VLC无法读取文件”错误

来自分类Dev

尝试读取 txt 文件时出现 TIC SSL 信任错误

来自分类Dev

无法打开文件或连接:尝试从计算机读取 Excel 时出现“rb”错误

来自分类Dev

尝试使用at命令读取短信时出现错误

来自分类Dev

出现错误:尝试部署 .bna 时端点读取失败

来自分类Dev

尝试在C#中读取共享内存时出现堆栈溢出错误

来自分类Dev

尝试读取枚举状态时出现C ++枚举错误

来自分类Dev

尝试逐行读取文件(Java)时出现NullPointerException?

来自分类Dev

尝试读取Excel文件时出现非法状态异常

来自分类Dev

尝试读取文件时出现奇怪的 NoSuchFileException

来自分类Dev

C编程:读取文件文本并尝试找出最长的单词时出现问题

来自分类Dev

尝试从C#中的共享点/网络位置读取文件时出现问题

来自分类Dev

读取文件时valgrind中的错误-C

来自分类Dev

尝试从文件读取时超出范围错误?

来自分类Dev

尝试从文件中读取时发生网络错误... SkypeSetup

来自分类Dev

尝试从文件中读取时,对象没有属性错误

来自分类Dev

并行读取AutoCad数据库时出现“尝试读取或写入受保护的内存”错误

来自分类Dev

在dev c ++ mingw 4.8.1中尝试从文件读取时收到分段错误

来自分类Dev

读取文件时出现UnicodeEncodeError

来自分类Dev

从文件读取时出现NoSuchElementException

Related 相关文章

  1. 1

    尝试从邮筒读取时出现C读取文件错误87

  2. 2

    读取文件C ++时出现奇怪的错误

  3. 3

    尝试让熊猫读取我的json文件时出现错误

  4. 4

    错误:尝试从文件到数组读取值时出现NoSuchElementException

  5. 5

    尝试在 C 中读取迷宫文本文件时出现 malloc 错误

  6. 6

    从文件读取大数组时出现分段错误。C ++ / gcc

  7. 7

    读取文件时出现NumberFormatException错误

  8. 8

    尝试同时打开多个文件以读取文件时出现分段错误(Core Dumped)

  9. 9

    尝试从URL读取标记文件时出现斯坦福POS标记错误

  10. 10

    尝试播放DVD时出现“ VLC无法读取文件”错误

  11. 11

    尝试读取 txt 文件时出现 TIC SSL 信任错误

  12. 12

    无法打开文件或连接:尝试从计算机读取 Excel 时出现“rb”错误

  13. 13

    尝试使用at命令读取短信时出现错误

  14. 14

    出现错误:尝试部署 .bna 时端点读取失败

  15. 15

    尝试在C#中读取共享内存时出现堆栈溢出错误

  16. 16

    尝试读取枚举状态时出现C ++枚举错误

  17. 17

    尝试逐行读取文件(Java)时出现NullPointerException?

  18. 18

    尝试读取Excel文件时出现非法状态异常

  19. 19

    尝试读取文件时出现奇怪的 NoSuchFileException

  20. 20

    C编程:读取文件文本并尝试找出最长的单词时出现问题

  21. 21

    尝试从C#中的共享点/网络位置读取文件时出现问题

  22. 22

    读取文件时valgrind中的错误-C

  23. 23

    尝试从文件读取时超出范围错误?

  24. 24

    尝试从文件中读取时发生网络错误... SkypeSetup

  25. 25

    尝试从文件中读取时,对象没有属性错误

  26. 26

    并行读取AutoCad数据库时出现“尝试读取或写入受保护的内存”错误

  27. 27

    在dev c ++ mingw 4.8.1中尝试从文件读取时收到分段错误

  28. 28

    读取文件时出现UnicodeEncodeError

  29. 29

    从文件读取时出现NoSuchElementException

热门标签

归档