VS2008 VC++ 環境にて、コンパイルで、「error C3867: 'CFrrjiftestDlg::MyDataHandler': 関数呼び出しには引数リストがありません。メンバへのポインタを作成するために '&CFrrjiftestDlg::MyDataHandler' を使用してください」 が発生しました。ネットで類似のエラーを見ましたが、エラーは回避できませんでした。どうすれば、エラーが直るのか教えてください。
【エラー箇所のソース】
void CFrrjiftestDlg::OnBnClickedButton1() ← このソースは、frrjiftestDlg.cpp で記述
#include "frrjiftestDlg.h"
この間にいろいろな処理を記述
Cortex_SetDataHandlerFunc(MyDataHandler); ← この行でエラー発生
【frrjiftestDlg.h のヘッダ】
void MyDataHandler(sFrameOfData* FrameOfData); ← これを記述
【MyDataHandler の記述】
void CFrrjiftestDlg::MyDataHandler(sFrameOfData* FrameOfData) ← これは、frrjiftestDlg.cpp で記述
この後に処理を記述
ざっと、こんな感じで書いています。
エラーの説明をみると、「メンバへのポインタを作成するために '&CFrrjiftestDlg::MyDataHandler' を使用してください」となっていますが、いろいろ書いてみましたが、だめでした。
No.2
- 回答日時:
> Cortex_SetDataHandlerFunc(&CFrrjiftestDlg::MyDataHandler); ←これにすると、
>
> C2664: 'Cortex_SetDataHandlerFunc' : 1 番目の引数を 'void (__thiscall CFrrjiftestDlg::* )(sFrameOfData *)' から 'void (__cdecl *)(sFrameOfData *)' に変換できません ←このえらーになります。
Cortex_SetDataHandlerFunc() の引数にはメンバ関数を渡せないんじゃないですか?
通常の関数とメンバ関数は互換ではありませんよ?
この回答への補足
もう少し説明しますと、
// frrjiftestDlg.h : header file
class CFrrjiftestDlg : public CDialog
{
public:
void PrintFrameOfData(FILE *handle, sFrameOfData *FrameOfData);
void MyDataHandler(sFrameOfData* FrameOfData);
};
// frrjiftestDlg.cpp : implementation file
void CFrrjiftestDlg::MyDataHandler(sFrameOfData* FrameOfData)
{
PrintFrameOfData(handle, FrameOfData);
}
void CFrrjiftestDlg::PrintFrameOfData(FILE *handle, sFrameOfData *FrameOfData)
{
いろんな処理
}
void CFrrjiftestDlg::OnBnClickedButton1()
{
//ここがメイン処理のボタンを押下したときの処理
Cortex_SetDataHandlerFunc(MyDataHandler); ←ここがコンパイルエラー
}
error C3867: 'CFrrjiftestDlg::MyDataHandler': 関数呼び出しには引数リストがありません。メンバへのポインタを作成するために '&CFrrjiftestDlg::MyDataHandler' を使用してください
↑このエラーになります。
下記の記述にすると、それぞれのエラーになります。
//Cortex_SetDataHandlerFunc(&CFrrjiftestDlg::MyDataHandler); /* C2664 ERROR */
//Cortex_SetDataHandlerFunc(&MyDataHandler); /* C2276 ERROR */
どんな記述にすれば、いいのでしょうか?
No.1
- 回答日時:
> エラーの説明をみると、「メンバへのポインタを作成するために '&CFrrjiftestDlg::MyDataHandler' を使用してください」となっていますが、いろいろ書いてみましたが、だめでした。
"だめ"とは?
> Cortex_SetDataHandlerFunc(MyDataHandler); ← この行でエラー発生
これを
Cortex_SetDataHandlerFunc(&CFrrjiftestDlg::MyDataHandler);
あるいは
Cortex_SetDataHandlerFunc(&MyDataHandler);
としてもだめだったのですか? どう"だめ"なのですか?
この回答への補足
Cortex_SetDataHandlerFunc(&MyDataHandler); ←これにすると、
error C2276: '&' : 仮想関数のアドレスを取ろうとしました。 ←このエラーになり、
Cortex_SetDataHandlerFunc(&CFrrjiftestDlg::MyDataHandler); ←これにすると、
C2664: 'Cortex_SetDataHandlerFunc' : 1 番目の引数を 'void (__thiscall CFrrjiftestDlg::* )(sFrameOfData *)' から 'void (__cdecl *)(sFrameOfData *)' に変換できません ←このえらーになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
ロボットの住む世界で流行ってる罰ゲームとは?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
DWORDの実際の型は何でしょうか
C言語・C++・C#
-
適切な変換関数が存在しない???
C言語・C++・C#
-
C++言語で、構造体のコピーは可能(しても良い)のでしょうか?
C言語・C++・C#
-
-
4
ダイアログの上のテキストボックスの、初期値を設定する方法が分かりません・・・・
C言語・C++・C#
-
5
静的でないメンバ関数の呼び出しが正しくありません
C言語・C++・C#
-
6
画面を強制的に再描画させる方法
C言語・C++・C#
-
7
「fatal error C1189」を回避するには?
C言語・C++・C#
-
8
既定のコンストラクタがない?
C言語・C++・C#
-
9
Debug Assertion Failed?
C言語・C++・C#
-
10
【C++】関数ポインタの使い方
C言語・C++・C#
-
11
charからLPTSTRへの変換方法
C言語・C++・C#
-
12
CString型の文字列連結について
C言語・C++・C#
-
13
メモリリークの件
C言語・C++・C#
-
14
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
15
char*を初期化したいのですが
C言語・C++・C#
-
16
Enterキーを押されたら次の処理に移るという事をしたい。
C言語・C++・C#
-
17
ファイル内のデータを1行削除する方法
C言語・C++・C#
-
18
<unistd.h>をVisualStudioでつかえるようにする
C言語・C++・C#
-
19
CStringをwchar_tに変換したい
C言語・C++・C#
-
20
構造体のextern方法
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
fortranでプログラムを実行する...
-
Excelのエラーで困ってます。
-
バッチからsqlplusの接続エラー...
-
Visual Studioのstrcpy_sについて
-
Arduinoに関する質問
-
ビルド失敗 指定されたファイ...
-
RightとLeft関数のライブ...
-
コンパイルできません。
-
sys/time.hのインクルードがで...
-
VB2008で定数に色の設定をした...
-
入れ子になっている構造体配列...
-
デバッグ中のエラーのことで教...
-
ステップ実行について
-
LPCWSTRとchar
-
【R8C/Tinyマイコン】エラーに...
-
error C3867 関数呼び出しには...
-
VC++でboolがエラーになる
-
Fortran コンパイルエラーについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
Excelのエラーで困ってます。
-
fortranでプログラムを実行する...
-
バッチからsqlplusの接続エラー...
-
適切な変換関数が存在しない???
-
VB2008で定数に色の設定をした...
-
HEWを使用しているのですが、こ...
-
sys/time.hのインクルードがで...
-
BC30002: 型 'ListItem' が定義...
-
Handlesについて
-
Visual Studioのstrcpy_sについて
-
RightとLeft関数のライブ...
-
error C3867 関数呼び出しには...
-
デバッグ中のエラーのことで教...
-
コンパイルできません。
-
multiple definitionというエラー
-
ビルド失敗 指定されたファイ...
-
レコードセットをcloseする所で...
-
左側がクラス、構造体、共用体...
おすすめ情報