掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
動的リンクしたDLLの関数の引数にコールバック関数を指定するには? (ID:73155)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
提供されたDLLを動的リンクして自EXE内で使用するのですが、DLLの関数で引数に自EXE内の関数をコールバック関数として指定するものがあります。 自EXE側での記述方法がわからず困っています。 <DLLのヘッダ> #define ACS_FUNC_START_ASYNC _T("ACS_Start_Async") //*** 処理結果通知コールバック関数 typedef void (CALLBACK *ACS_START_CB)(LPVOID pUserInfo, DWORD dwStartResult, LPACS_ERR_INFO pstErrInfo); //*** アクセス開始処理関数 typedef DWORD (APIENTRY *ACS_FP_START_ASYNC)( ACS_START_CB, // 処理結果を通知するコールバック関数のアドレス LPVOID, // コールバック関数呼び出し時に渡す引数 LPACS_ERR_INFO); // エラー情報 <EXE側ヘッダ> ACS_FP_START_ASYNC ACS_Start_Async; void AcsLibErrLogout(LPACS_ERR_INFO *AcsErrInfo); <EXE側プログラム> void AcsLibErrLogout(LPACS_ERR_INFO *AcsErrInfo) { .... // 処理省略 } int test(){ HMODULE m_hDll = LoadLibrary(XXX.dll); ACS_Start_Async = (ACS_FP_START_ASYNC)GetProcAddress(m_hDll, ACS_FUNC_START_ASYNC); ACS_START_CB AcsStartCB = &AcsLibErrLogout; ACS_ERR_INFO AcsErrInfoCB; ACS_ERR_INFO AcsErrInfo; DWORD dwRet; dwRet = ACS_Start_Async(AcsStartCB, &AcsErrInfoCB, &AcsErrInfo); } と記述したところ、最終行のところでコンパイルエラー:C2440が発生します。 どのように変更したらいいでしょうか?
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.