【问题标题】:Getting problem with timing in C in visual studio 2010在 Visual Studio 2010 中的 C 中出现计时问题
【发布时间】:2011-06-27 18:06:42
【问题描述】:

我有一个获取系统时间的功能。函数定义如下。

  int getSystemTime(struct timeval tv, void * tz);{
  DWORD milliseconds;
  milliseconds = timeGetTime();
  tv->tv_sec = milliseconds / 1000;
  tv->tv_usec = (milliseconds % 1000) * 1000;
  return 0;
  }

问题如下:

 1.error: identifier DWORD is undentified .
 2.error: identifier timeGetTime() is undefined.
 3.error: identifier suseconds_t is undefined. 

我尝试在定义 DWORD 的位置包含 windef.h。但问题是,我收到如下错误:

 1. error: identifier PCONTEXT is undefined.

包含时间的头文件是time.h。这里定义的时间是:

#ifndef _WINSOCK_H
struct timeval {
time_t tv_sec;
suseconds_t tv_usec;
};

你能告诉我我应该怎么做才能让这个功能在windows环境下运行吗?

[编辑]

 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif

#ifdef HAVE_WINDOWS_H
#include <windows.h>
#endif

#ifdef HAVE_MMSYSTEM_H
#include <mmsystem.h>
#endif

#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>

【问题讨论】:

    标签: c visual-studio visual-studio-2010 compiler-warnings


    【解决方案1】:

    您需要在 C 文件的顶部包含 windows.h。

    【讨论】:

    • 我提到忘记了 windows.h 也包含在该函数的头文件中。我将把包含和指令放在帖子中。
    • 第二个愚蠢的问题:你在使用 CMake 吗?如果是这样,您是否记得先运行它?
    • 不,我没有运行 CMake。我是这个视觉工作室的新手。我只是从现有源创建一个控制台项目,例如 File-> 项目-> visual c++-> 控制台并完成。 我正在构建源。如果我在做一些愚蠢的事情需要先学习,你能告诉我吗?
    • 宏 HAVE_WINDOWS_H 通常是 CMake 构建系统的一部分。这是您从某处下载的项目吗?如果是这样,您可能想看看这个:cmake.org/cmake/help/runningcmake.html
    • 我唯一能推断的是没有正确包含标题,可能是由于配置脚本没有正确运行。您可以尝试的是:浏览该配置标头并手动扩展一些配置宏。例如,删除 HAVE_WINDOWS_H 包装,直接包含 windows.h。这应该可以构建它,但是您以后可能会遇到问题;如果您必须在此修改后将一些更改合并回主线,您的团队会因此而讨厌您。
    猜你喜欢
    • 1970-01-01
    • 2011-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    • 2011-10-23
    相关资源
    最近更新 更多