Re: mmreg.hによるエラー ( No.1 ) |
- 名前:キーチック 日時:2008/03/07 15:15
エラーを見ていると,intの前に;がないというのですから,1行前の構文が;で終わっていないと言うことですね.
いじったつもりがなくても,間違って;を消してしまった可能性もありますので,チェックしてみてはいかがでしょうか
|
Re: mmreg.hによるエラー ( No.2 ) |
- 名前:初心者X 日時:2008/03/07 16:27
>>キーチックさん
何も変化がないですね・・・
mmreg.hの42-44行目は
#ifdef __cplusplus
extern "C" {
#endif
となっておりC言語の関数呼び出しの構文のようなので、intや;を用いるはずは無いらしいんですが・・・
調べてみてもintや;でのエラー報告は無く、どこが間違っていて修正するべきなのかハッキリと分からない状態ですね。。
|
Re: mmreg.hによるエラー ( No.3 ) |
- 名前:通 日時:2008/03/07 17:31
ソースコードを出せるなら、
小出しにせず見せられるところまで
見せた方が良いですよ。
でないと、無駄なやり取りが続きますし
あと開発環境は書いてください。
#ついでにCのみかC/C++混在なのかもあるといいかも
コンパイラがエラーと言っている部分に必ず
それがあるとは限りません。
ヘッダならばその直前に書いてあるコードや
ヘッダなどに問題があるとその後のヘッダで
エラーになる事もあります。
型情報を書かずに識別子を書くとerror C4430の
エラーが起こる可能性があります。
例えば
static hoge;
Cであれば、intとしてデフォルトが指定されますが、
「C++ は int を既定値としてサポートしていない」
なので、
この場合はリンゲージの問題ではないので、externCは
考慮されない可能性があります。
何れにせよ、情報が少ないのでなんとも:-p)
|
Re: mmreg.hによるエラー ( No.4 ) |
- 名前:初心者X 日時:2008/03/07 17:40
どうも済みません、開発環境は
WindowsXP_SP2、Visual Studio 2005のC++で行っています。
ソース自体はこのサイトのサンプルプログラム8にある関数ポインタ基本のプログラムです。
問題のあるヘッダーはmmreg.hで
#ifndef _INC_MMREG
/* use version number to verify compatibility */
#define _INC_MMREG 158 // version * 100 + revision
#if _MSC_VER > 1000
#pragma once
#endif
#if !defined( RC_INVOKED ) && defined( _MSC_VER )
#if (_MSC_VER <= 800)
#pragma pack(1)
#else
#include "pshpack1.h" /* Assume byte packing throughout */
#endif
#endif /* RC_INVOKED */
#ifdef __cplusplus
extern "C" {
#endif
/* __cplusplus */
#ifndef NOMMIDS
/* manufacturer IDs */
#ifndef MM_MICROSOFT
#define MM_MICROSOFT 1 /* Microsoft Corporation */
#endif
との事だそうです。
もしかすると間違えてサンプルデータ内にあったVC++6で起動したのが誤りだったんでしょうか?
分からない事ばかりで本当に申し訳ないです。
|
Re: mmreg.hによるエラー ( No.5 ) |
- 名前:初心者X 日時:2008/03/07 19:27
どうも済みません。
ヘッダーをよくよく見たら関係のない文字列を入れてたので、消してみたらすっかり直りました。
わざわざご迷惑おかけして済みません。
キーチックさん、通さん わざわざご指摘いただきありがとうございます。
この経験を活かして今後からも自分のデータ内をしっかり見るように心がけます
|