Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C ZeroMemory函数在windows.h中给我错误?_C_Windows_Macos_Dummy Data - Fatal编程技术网

C ZeroMemory函数在windows.h中给我错误?

C ZeroMemory函数在windows.h中给我错误?,c,windows,macos,dummy-data,C,Windows,Macos,Dummy Data,基本上我是在Mac电脑上编程的,但我使用的源代码来自学校里一个包含“windows.h”的小组 我做了一些研究,显然OSX没有该文件的副本 我在这里的一个线程上看到了一个答案,它说可以创建一个“虚拟”windows.h文件,只需插入我需要的任何#include或函数原型。为了做到这一点,我只是上网,从一些微软目录中获得了我需要的功能 我继续这样做,一切正常,直到ZeroMemory函数给了我错误 因此,在我的虚拟“windows.h”文件中: 我发现以下错误: Expected paramete

基本上我是在Mac电脑上编程的,但我使用的源代码来自学校里一个包含“windows.h”的小组

我做了一些研究,显然OSX没有该文件的副本

我在这里的一个线程上看到了一个答案,它说可以创建一个“虚拟”windows.h文件,只需插入我需要的任何#include或函数原型。为了做到这一点,我只是上网,从一些微软目录中获得了我需要的功能

我继续这样做,一切正常,直到ZeroMemory函数给了我错误

因此,在我的虚拟“windows.h”文件中:

我发现以下错误:

Expected parameter declarator
Use of undeclared identifier 'in'
Expected ')'
Unknown type name PVOID
Unknown type name SIZE_T
现在,我已经在谷歌上搜索了这个函数及其错误,我一直在寻找一堆只包含这行代码的代码,这并没有多大帮助

我需要知道的是我该从这里走到哪里?创建这个“虚拟”windows.h文件是否正确?或者有没有其他方法可以使用windows.h

我找到的使用虚拟windows.h文件的答案是

我感谢所有的意见,所以如果你有什么想法,请把它扔下来!非常感谢大家


根据注释更改部分代码后:

void ZeroMemory(PVOID  Destination, SIZE_T Length);
我发现以下错误:

Expected parameter declarator
Use of undeclared identifier 'in'
Expected ')'
Unknown type name PVOID
Unknown type name SIZE_T

我在想,我可能遗漏了一些定义,但这些是类型名,所以它们一定来自结构?如果我错了,请纠正我好吗D

如果你的头上有
[in]
注释,那么你抓取了错误的文件,很可能是文件而不是实际的头。在标题中,它应该是中的,这将是一个空宏。在任何情况下,您仍然会遇到问题,因为您将丢失所发现的
SIZE\T
之类的定义。除非你想去替换你碰到的每一个依赖项,否则我建议用你自己的版本来替换调用本身。对于
ZeroMemory(p,s)
,您应该能够用
memset(p,0,s)
轻松地替换它。当然,这是假设您只在Windows标题中使用了微不足道的功能。如果你使用的是实际的平台特定的东西,比如窗口、输入等,那么你可能只需要得到一台机器或VM运行Windows。

< P>这是Windows平台上开发人员容易陷入的一种坏习惯,包括在简单应用程序中的“Windows .h”,否则,它们符合标准C或C++。 最正确的选择是鼓励其他学生/老师?在编写应用程序时,只使用标准的C或C++头文件。这将确保它们不使用任何特定于windows api的函数


当然,可以创建一个Windows .h,并在任何琐碎的Windows方法中嵌入(如MooSeMes回答,ZimeMeMy可以用MeMSET实现),可以在不改变它们的情况下编译简单的程序,但迟早一些程序将使用Windows API,没有简单或方便的标准C/C++或CopeFoundation。(在OSX上,用于访问窗口内容的等效框架)等效。我认为您使用的语法是错误的。您应该使用

PVOID Destination[in]
声明它。我相信
[in]
是一个文档注释,告诉您它是一个输入参数。它不应该是实际代码的一部分。只需删除它。我会在抓完执行后尝试!哈哈,谢谢。谢谢Kaylum和AmeyCU。我将删除“in”并将其保留为[]括号。我会让您了解它的最新情况!不,
[]
也是文档注释的一部分。也删除它们。只需
清空零内存(PVOID目标,大小\u T长度)
这个项目的目标是让我能够从USB xbox 360控制器实现操纵杆输入,所以我使用的是平台特定的东西,因为我相信输入必须通过操作系统运行。老实说,不久前我确实将代码传输到了windows机器上,但我必须从Xcode转换为代码块a当我被困在OSX和Windows的中间时,我被困在了OSX和Windows的中间。(特别是,如果您正在编写内核模式驱动程序,它永远不会工作).我把自己挖进了一个大洞。我有点惊讶,网上没有关于如何做到这一点的教程。我正在通过开放框架库编程我的游戏,即使是开放框架也没有太多关于这方面的建议,除了一个非常令人困惑的插件。。