C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: DWORDを使うとwinntでエラー


(過去ログ 108 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■64428 / inTopicNo.1)  DWORDを使うとwinntでエラー
  
□投稿者/ OROCHI (7回)-(2012/12/01(Sat) 16:28:14)

分類:[C/C++] 

OS:windows7 pro
開発環境:Visual C++ 2010

こんにちは、現在時間を検査するようなプログラムを作り,timeGetTimeで時間を取るようにしています
ところが、WinDef.hをインクルードしてDwordをtimeGetTimeの返り値で取ろうとすると、以下のようなコンパイルエラーが出ます(しかもインクルードすらしていないwinntで)
この原因と対処法がわかる方いらっしゃいますでしょうか?

コード
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <WinDef.h>
#include <MMSystem.h>
#include <iostream>

#define CONTROL_CYCLE_TIME 10      // 単位はms
#define TIME_OUT 65535

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{

DWORD lastTime = timeGetTime();
(略)

エラー
エラー	1	error C2146: 構文エラー : ';' が、識別子 'ContextRecord' の前に必要です。	c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h	6361	1	p308
エラー	2	error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません	c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h	6361	1	p308
エラー	3	error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません	c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h	6361	1	p308
エラー	4	error C2065: 'PCONTEXT' : 定義されていない識別子です。	c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h	12983	1	p308
エラー	5	error C2146: 構文エラー : ')' が、識別子 'ContextRecord' の前に必要です。	c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h	12984	1	p308
警告	6	warning C4229: 旧形式が使用されています : データの修飾子は無視されます。	c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h	12984	1	p308
エラー	7	error C2182: 'RtlCaptureContext' : 'void' 型が不適切に使用されています。	c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h	12984	1	p308
エラー	8	error C2491: 'RtlCaptureContext' : dllimport データ の定義は許されません。	c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h	12984	1	p308
エラー	9	error C2059: 構文エラー : ')'	c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h	12984	1	p308
エラー	10	error C2143: 構文エラー : ';' が '__stdcall' の前にありません。	c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h	13372	1	p308
エラー	11	error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません	c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h	13372	1	p308
エラー	12	error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません	c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h	13376	1	p308
エラー	13	error C3861: '__readfsdword': 識別子が見つかりませんでした	c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h	14982	1	p308
エラー	14	error C2065: 'i' : 定義されていない識別子です。	c:\madoka_baw\train\vc\p308\p308\p308.cpp	34	1	p308

引用返信 編集キー/
■64430 / inTopicNo.2)  Re[1]: DWORDを使うとwinntでエラー
□投稿者/ 774RR (25回)-(2012/12/01(Sat) 16:42:48)
#include <windef.h> の代わりに #include <windows.h> とすると直るはず。
windef.h は windows.h の中で #include される前提で設計してあるので、
自分で #include するものではない。

蛇足
> Dwordを
C や C++ は大文字と小文字を区別する言語なので Dword と DWORD は別物。
現に自分でも Dword は使っていないはず。用語は正確に使おう。

蛇足2
#include <....> は stdafx.h の中に書くとコンパイルが早くなるよ。

引用返信 編集キー/
■64431 / inTopicNo.3)  Re[2]: DWORDを使うとwinntでエラー
□投稿者/ OROCHI (8回)-(2012/12/01(Sat) 20:44:53)
> #include <windef.h> の代わりに #include <windows.h> とすると直るはず。
> windef.h は windows.h の中で #include される前提で設計してあるので、
> 自分で #include するものではない。
>
なるほど、こういうことだったのですねありがとうございます
> 蛇足
>>Dwordを
> C や C++ は大文字と小文字を区別する言語なので Dword と DWORD は別物。
> 現に自分でも Dword は使っていないはず。用語は正確に使おう。
>
すみません、単なるミスタイプです(汗)

ありがとうございました。ただエラー
1 error LNK2019: 未解決の外部シンボル __imp__timeGetTime@0 が関数 _main で参照されました。 C:\madoka_BAW\train\VC\p308\p308\p308.obj p308
というのがまだ残っています。timeGetTime自体は自分で作ったものでもないですし、extern "C"でmainを囲っても駄目でした。これの正体はわかりますでしょうか?

引用返信 編集キー/
■64432 / inTopicNo.4)  Re[1]: DWORDを使うとwinntでエラー
□投稿者/ OROCHI (10回)-(2012/12/01(Sat) 21:37:39)
すみません、winmm.libの参照追加をしていなかっただけみたいです
#pragma comment(lib, "winmm.lib")
をmain手前に追記するか
プロジェクトのプロパティを開き
リンカ→全般→追加のライブラリディレクトリでprogram Files(x86)\Microsoft SDKs\Windows\v7.0A\Lib\
リンカ→入力→追加の依存ファイルでwinmm.lib
をそれぞれ追記することでできました

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -