libsharememory.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // 下列 ifdef 块是创建使从 DLL 导出更简单的
  2. // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 LIBSHAREMEMORY_EXPORTS
  3. // 符号编译的。在使用此 DLL 的
  4. // 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
  5. // LIBSHAREMEMORY_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的
  6. // 符号视为是被导出的。
  7. #pragma once
  8. #ifdef _WIN32
  9. #ifdef LIBSHAREMEMORY_EXPORTS
  10. #define LIBSHAREMEMORY_API __declspec(dllexport)
  11. #else
  12. #define LIBSHAREMEMORY_API __declspec(dllimport)
  13. #endif
  14. # elif ( defined(__GNUC__) && __GNUC__ >= 4 )
  15. #define LIBSHAREMEMORY_API __attribute__((visibility("default")))
  16. #else // _WIN32
  17. #define LIBSHAREMEMORY_API
  18. #endif // _WIN32
  19. #include <stdio.h>
  20. #ifndef MAX_PATH
  21. #define MAX_PATH 260
  22. #endif // !MAX_PATH
  23. #ifndef INFINITE
  24. #define INFINITE 0xFFFFFFFF // Infinite timeout
  25. #endif // !INFINITE
  26. using namespace std ;
  27. class libsharememory_impl; //桥接
  28. // 此类是从 libsharememory.dll 导出的
  29. class LIBSHAREMEMORY_API Clibsharememory
  30. {
  31. public:
  32. Clibsharememory(void);
  33. ~Clibsharememory();
  34. // TODO: 在此添加您的方法。
  35. void Unlock();
  36. bool IsLocked();
  37. void* Lock(unsigned int dwWaitTimeout=INFINITE);
  38. bool IsValid();
  39. unsigned int GetBytes();
  40. void Close();
  41. bool Open(const char* szName);
  42. bool Create(const char* szName, unsigned int dwBytes);
  43. private:
  44. libsharememory_impl*m_pImpl;
  45. };