- 締切済み
コールバック関数とは…(C言語)
関数をコールバックするのと、 関数を直接呼ぶのとではどう違うのでしょうか? ※質問がおかしかったらすいません。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- higeG
- ベストアンサー率22% (4/18)
- tea_sheep
- ベストアンサー率53% (8/15)
- Oh-Orange
- ベストアンサー率63% (854/1345)
- oldroot2005
- ベストアンサー率66% (68/103)
関連するQ&A
- コールバック関数について
コールバック関数の意味は、 特定の条件が成り立った時に呼び出してもらうだと思うんですが、 コールバック関数を使うメリット・利点は何なんでしょうか?
- 締切済み
- C・C++・C#
- コールバックって・・・
コールバックって・・・ はじめまして、質問があります。 コールバックとはどういう意味でしょうか? コールバックは普通の関数呼び出しと何か違いがありますか。 [現在のイメージ] ・下位関数が上位の関数をコールすること ・マルチタスクでないと使用できない ・イベントドリブンでないと使用できない ・割り込み的なもの? ご存知の方いらっしゃいましたら、どうか御教授ください。
- ベストアンサー
- C・C++・C#
- C++別のオブジェクトからメンバ関数をコールバック
自作のタイマオブジェクトにコールバックしたい別のオブジェクトのメンバ関数(複数)を登録して、一定時間経過後にコールバックしたいです。 今、考えているのはタイマオブジェクトでコールバック関数を呼び出す関数を仮想関数にして、継承したサブクラスごとにどのコールバック関数を呼び出すか処理を変えるやり方です。 ただ、これだと何だか複雑になりそうですし、そもそも根本的なところが間違っている気もします。 ご助言いただきたいです。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- 【php】コールバック関数ってなんですか?
【php】コールバック関数ってなんですか? コールバック関数ってどういうものなのでしょうか? 個人的になイメージでは このライブラリの、このボタンを押した時 hoge()という関数が実行されるように設計しておいたから ボタンを押した時に何か動作が必要な場合は hoge()という名前で関数を定義しておいてね。 みたいな感じでしょうか?
- ベストアンサー
- PHP
- コールバック関数のメンバ関数化
コールバック関数のメンバ関数化について質問です。 WindowsAPIでウィンドウプロシージャ(コールバック関数)をクラスのメンバ関数に しようと思っているのですが、出来るのでしょうか? たとえば、 http://wisdom.sakura.ne.jp/system/winapi/win32/win10.html このサイトにある LRESULT CALLBACK WndProc(HWND hWnd , UINT Msg , WPARAM wParam , LPARAM lParam); をクラスのメンバ関数にしたいです。 開発環境 XP C,C++ Visual Studio 2005
- ベストアンサー
- C・C++・C#
- コールバック関数
お世話になります。VB.NETにてソフト制作をしています。 今回、DLLの関数を利用する事になりましたが、うまく宣言できず困っています。御教授お願いします。 DLLはC++で作られており変更できません。 DLLは通信を補助するための物で、初期設定の関数と通信開始の物があります。 初期設定用を呼んだ後、通信開始を行なうようです。 説明には下記のような内容がありました。 【初期設定用】 initial(DWORD ip, LPNOTIFICATIONFUNC notificationFunc); ip=相手先のipアドレス notificationFunc=コールバック関数へのポインタ コールバック関数 WINAPI *PNOTIFICATIONFUNC( DWORD id, BYTE bySet1, BYTE bySet2, BYTE bySet3, BYTE *data, DWORD datasize ); 【通信開始用】 start(DWORD ip BYTE *code ); ip=通信元のipアドレス code=相手のコードの格納アドレス 以上 全体的にどう宣言したら良いのか解りません。 (特にコールバック関数の宣言と、ポインタへの引数の渡し方) すみませんが、御教授お願いします。
- ベストアンサー
- Visual Basic
- コールバック関数 再び
またまた、お世話になります。前回、御回答頂き動作するようにはなったのですが、コールバックに入力があった時に、アプリケーションが終了してしまう現象がおきています。御教授お願いします。 C++で作られたDLLを利用。 装置との通信を行なう物で初期設定用と通信開始用の 関数があり、コールバック関数で、装置からの送信もある。このDLLを使った、他のアプリで動作確認は取れているのでDLL自体には問題ないと思われる。 関数説明 【初期設定用】 initial(DWORD ip,LPNOTIFICATIONFUNC notificationFunc); ip=相手先のipアドレス notificationFunc=コールバック関数へのポインタ コールバック関数 WINAPI *PNOTIFICATIONFUNC( DWORD id, BYTE bySet1, BYTE bySet2, BYTE *data, DWORD datasize); 以上の説明があり、現在下記のように宣言して使っています。 【初期設定用】 Declare Function MT_INITIALIZE Lib "TEST.dll" Alias "Initial" _ (ByVal ip As Integer, ByVal notificationFunc As CallBack) As Boolean Public Delegate Sub CallBack( _ ByVal id As Integer, _ ByVal byset1 As Byte, _ ByVal byset2 As Byte, _ ByVal data As IntPtr, _ ByVal dataSize As Integer) 【コールバック関数】 Public Shared Sub notificationFunc( _ ByVal id As Integer, _ ByVal byset1 As Byte, _ ByVal byset2 As Byte, _ ByVal data As IntPtr, _ ByVal dataSize As Integer ) //データのバッファ処理 End Sub
- ベストアンサー
- Visual Basic
- jQueryのコールバック関数の実行順序について
いつもお世話になっております。 jQueryのコールバック関数について質問させて下さい。 jQueryの関数には引数としてコールバック関数を取るものがありますが、これらの実行順序で悩んでいます。 実行順序に関して、呼び出し元関数の実行が完了した後にコールバック関数が実行されるという認識で間違いないでしょうか? 以前、実行順序は保証されないという記述を見たのですが、どこで見たのか失念してしまい、再度読み直す事ができないでいます。 以上の事に関してご教授下さい。 宜しくお願い致します。
- ベストアンサー
- AJAX
- C言語のコールバック
Java/C#/PHPといった言語はすでに使えるのですが、現在C言語およびWin32 APIを勉強中です。 C言語の関数にはJavaなどのインスタンスメソッドのthisにあたる引数が渡されませんが、Win32 APIのウィンドウプロシージャに代表されるコールバック関数において不都合があります。Javaの場合は、 interface Callback{ void onCallback(); } といったインターフェイスが定義されているものとして、 hoge(new Callback(){ int data = 10; public void onCallback(){ System.out.println(data); } }); のようなコードで引数以外のデータも参照できますが、C言語ではこのように引数で渡せないデータを参照するにはどうしたらよいでしょうか。グローバル変数として参照するのは、Javaのstaticなフィールドと同様に拡張性を損なうので避けたいと思います。
- ベストアンサー
- C・C++・C#