4

Windowsでサービスを実装しています。VisualStudio 2012 には、次の関数 typedef があります。

typedef VOID WINAPI SERVICE_MAIN_FUNCTIONW (
    DWORD dwNumServicesArgs,
    LPWSTR *lpServiceArgVectors
);

関数ポインター typedef もあります。

typedef VOID (WINAPI *LPSERVICE_MAIN_FUNCTIONW)(
    DWORD   dwNumServicesArgs,
    LPWSTR  *lpServiceArgVectors
);

typedef を使用して、この関数シグネチャで関数を定義するにはどうすればよいですか?

4

5 に答える 5

1

関数定義で typedef を使用する必要はありません (使用できません)。サービスをメイン関数にするには、次のように記述します。

VOID WINAPI SvcMain( DWORD dwNumServicesArgs, LPWSTR *lpServiceArgVectors )
{
    // ...
}

LPSERVICE_MAIN_FUNCTIONWすべてのサービスの開始点を呼び出すために、Windows によって内部的に使用されます。typedef通常、関数を定義するのではなく、呼び出す関数ポインタが必要です。

于 2013-05-07T05:15:48.587 に答える