読者です 読者をやめる 読者になる 読者になる

Natural Software

KinectなどのDepthセンサーを中心に活動しています

Win32 API BeginUpdateResource のエラーに対する対処

プログラム

Win32 APIBeginUpdateResource を使ってて、エラー(HANDLEが0で返ってくる)になるけど、GetLastError()も0が返ってくる状況になった。
確実な対処ではないかもしれないけど、安定したのでメモ。

こんなコード

HANDLE resource = ::BeginUpdateResource( path, FALSE );
if ( resource == 0 ) {
    DWORD errorCode = ::GetLastError();
}

現象

  • pathに相対パスを入れたらエラー(resourceが0)になる事がある(なったり、ならなかったり)
  • ::GetLastError()で返るエラーコードは0(=正常終了)

対処

  • pathをフルパスにした