掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
C++のダイアログで画像処理をするには? (ID:3782)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
関数の定義にpublic宣言はありません。 C言語はどの程度理解されていますか? 今回の問題とは少し違いますが、一般的には、次のようになります。 //test.h #ifndef TEST_H #define TEST_H int hextoint(char*); // 関数宣言 #endif ---- ここまでがtest.h //test.c #include<stdio.h> #include<stdlib.h> #include "test.h" int main(int argc, char**argv) { int n; n = hextoint("20"); printf("%d", n); } int hextoint(char *hex) { int ret = 0; // 戻り値 // hexに入っている文字列を16進数と見なして、intに変換する処理 //(省略) return ret; } ---- test.cここまで これを、test.hヘッダ無しにすると、warningが発生します。 # 暗黙の関数宣言 C/C++では、関数を使用する前に関数の宣言をしていないと、ワーニングになり、暗黙の関数宣言として、intを返す関数になります。 とりあえず、わからないのであれば、おそらくコールバック関数は使用するAPIに対して1つでしょうから、APIを使用する関数の前に、コールバック関数を置き、それを呼べばよろしいかと思います。 例えば次の通り。 ****.cpp // APIを使用する箇所を含むファイル ・・・(省略)・・・ //コールバック関数を定義 LRESULT PASCAL MyFrameCallback( HWND hWnd, LPVIDEOHDR lpVHdr ) { //省略 } void TMyDialog::Hogehoge(...) { // APIを使用する関数 ・・・ // 省略 ・・・ //関数を使用する capSetCallbackOnFrame( hWndCap, MyFrameCallback ); } たいして難しくないです。 クラスのメンバ関数にしないだけです。 クラスのメンバ関数は、クラスのインスタンスがなければ呼べません(staticな関数は呼べますが)。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.