1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- // 下列 ifdef 块是创建使从 DLL 导出更简单的
- // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 LIBSHAREMEMORY_EXPORTS
- // 符号编译的。在使用此 DLL 的
- // 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
- // LIBSHAREMEMORY_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的
- // 符号视为是被导出的。
- #pragma once
- #ifdef _WIN32
- #ifdef LIBSHAREMEMORY_EXPORTS
- #define LIBSHAREMEMORY_API __declspec(dllexport)
- #else
- #define LIBSHAREMEMORY_API __declspec(dllimport)
- #endif
- # elif ( defined(__GNUC__) && __GNUC__ >= 4 )
- #define LIBSHAREMEMORY_API __attribute__((visibility("default")))
- #else // _WIN32
- #define LIBSHAREMEMORY_API
- #endif // _WIN32
- #include <stdio.h>
- #ifndef MAX_PATH
- #define MAX_PATH 260
- #endif // !MAX_PATH
- #ifndef INFINITE
- #define INFINITE 0xFFFFFFFF // Infinite timeout
- #endif // !INFINITE
- using namespace std ;
- class libsharememory_impl; //桥接
- // 此类是从 libsharememory.dll 导出的
- class LIBSHAREMEMORY_API Clibsharememory
- {
- public:
- Clibsharememory(void);
- ~Clibsharememory();
- // TODO: 在此添加您的方法。
- void Unlock();
- bool IsLocked();
- void* Lock(unsigned int dwWaitTimeout=INFINITE);
- bool IsValid();
- unsigned int GetBytes();
- void Close();
- bool Open(const char* szName);
- bool Create(const char* szName, unsigned int dwBytes);
- private:
- libsharememory_impl*m_pImpl;
- };
|