CommonDef.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include <iostream>
  2. #include "CommonDef.h"
  3. namespace hybridclr
  4. {
  5. void LogPanic(const char* errMsg)
  6. {
  7. std::cerr << "panic:" << std::endl;
  8. std::cerr << "\t" << errMsg << std::endl;
  9. exit(1);
  10. }
  11. const char* GetAssemblyNameFromPath(const char* assPath)
  12. {
  13. const char* last = nullptr;
  14. for (const char* p = assPath; *p; p++)
  15. {
  16. if (*p == '/' || *p == '\\')
  17. {
  18. last = p + 1;
  19. }
  20. }
  21. return last ? last : assPath;
  22. }
  23. const char* CopyString(const char* src)
  24. {
  25. size_t len = std::strlen(src);
  26. char* dst = (char*)HYBRIDCLR_MALLOC(len + 1);
  27. std::strcpy(dst, src);
  28. return dst;
  29. }
  30. const char* ConcatNewString(const char* s1, const char* s2)
  31. {
  32. size_t len1 = std::strlen(s1);
  33. size_t len = len1 + std::strlen(s2);
  34. char* dst = (char*)HYBRIDCLR_MALLOC(len + 1);
  35. std::strcpy(dst, s1);
  36. strcpy(dst + len1, s2);
  37. return dst;
  38. }
  39. void* CopyBytes(const void* src, size_t length)
  40. {
  41. void* dst = HYBRIDCLR_MALLOC(length);
  42. std::memcpy(dst, src, length);
  43. return dst;
  44. }
  45. }