paths_win.cc 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // Copyright 2015 The Crashpad Authors. All rights reserved.
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. #include "util/misc/paths.h"
  15. #include <windows.h>
  16. #include "base/logging.h"
  17. namespace crashpad {
  18. // static
  19. bool Paths::Executable(base::FilePath* path) {
  20. wchar_t executable_path[_MAX_PATH];
  21. unsigned int len =
  22. GetModuleFileName(nullptr, executable_path, arraysize(executable_path));
  23. if (len == 0) {
  24. PLOG(ERROR) << "GetModuleFileName";
  25. return false;
  26. } else if (len >= arraysize(executable_path)) {
  27. LOG(ERROR) << "GetModuleFileName";
  28. return false;
  29. }
  30. *path = base::FilePath(executable_path);
  31. return true;
  32. }
  33. } // namespace crashpad