ShareMemory_Block.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. // 下列 ifdef 块是创建使从 DLL 导出更简单的
  2. // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 SHAREMEMORY_BLOCK_EXPORTS
  3. // 符号编译的。在使用此 DLL 的
  4. // 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
  5. // SHAREMEMORY_BLOCK_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的
  6. // 符号视为是被导出的。
  7. #pragma once
  8. #ifndef SHAREMEMORY_BLOCK_EXPORTS
  9. #ifdef _WIN64
  10. #ifdef _DEBUG
  11. #pragma comment(lib, "ShareMemory_BlockX64D.lib")
  12. #else
  13. #pragma comment(lib, "ShareMemory_BlockX64.lib")
  14. #endif
  15. #else
  16. #ifdef _DEBUG
  17. #pragma comment(lib, "ShareMemory_BlockD.lib")
  18. #else
  19. #pragma comment(lib, "ShareMemory_Block.lib")
  20. #endif
  21. #endif
  22. #endif
  23. #ifdef SHAREMEMORY_BLOCK_EXPORTS
  24. #define SHAREMEMORY_BLOCK_API __declspec(dllexport)
  25. #define SHAREMEMORY_BLOCK_C_API extern "C" __declspec(dllexport)
  26. #else
  27. #define SHAREMEMORY_BLOCK_API __declspec(dllimport)
  28. #define SHAREMEMORY_BLOCK_C_API extern "C" __declspec(dllimport)
  29. #endif
  30. #include "ShareMemory_Client.h"
  31. // 此类是从 ShareMemory_Block.dll 导出的
  32. class SHAREMEMORY_BLOCK_API CShareMemory_Block
  33. {
  34. void * m_pSMC;
  35. DWORD * m_pBid;
  36. public:
  37. CShareMemory_Block(void);
  38. ~CShareMemory_Block(void);
  39. // TODO: 在此添加您的方法。
  40. virtual bool ShareMemoryBlockSet(DWORD Bid, int AccessFlags);
  41. bool Read(LPVOID buff, DWORD size);
  42. bool Write(LPVOID buff, DWORD size);
  43. bool GetBlockDataAddr(LPVOID & buff, DWORD & size);//获取到的buff是去除SMCELEMENTHEAD的整块block的首地址(如果是image数据则包含imageinfo及预留的2k头大小),size为去除SMCELEMENTHEAD的整块block大小
  44. //CShareMemory_Block & operator = (CShareMemory_Block & SMBobj);
  45. };