饭中淹的避难所~~~~~

偶尔来避难的地方~

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  94 随笔 :: 0 文章 :: 257 评论 :: 0 Trackbacks

#

     摘要: WOF(名将三国)的TGL文件格式解析。  阅读全文
posted @ 2010-01-25 13:27 饭中淹 阅读(4652) | 评论 (19)编辑 收藏

     摘要: CAS与LOCK FREE  阅读全文
posted @ 2010-01-08 22:50 饭中淹 阅读(2951) | 评论 (0)编辑 收藏

下载后请阅读 读我.txt
/Files/johndragon/Xse.zip
posted @ 2009-12-23 16:44 饭中淹 阅读(2372) | 评论 (3)编辑 收藏

1- 64位兼容检查会使存在%08x的代码导致cl.exe产生一个内部错误。
2- C# SQLCLIENT不支持连接字符串中的DSN关键字。换用ODBC的那套,就没问题了。





posted @ 2009-11-04 17:59 饭中淹 阅读(320) | 评论 (1)编辑 收藏

把对象都采用统一的结构进行构建和管理,让整个世界通过一个根来发展开来。

posted @ 2009-09-04 21:09 饭中淹 阅读(301) | 评论 (0)编辑 收藏

 

class CInputFile
{
public:
    CInputFile() : m_Handle( INVALID_HANDLE_VALUE ) {}
    
~CInputFile() { Close(); }

    
bool Open( const char * pszFilename )
    {
        m_Handle 
= CreateFile( pszFilename, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL );
        
if!IsValid() )return false;
        GetFileSizeEx( m_Handle, 
&m_nSize );
        LARGE_INTEGER li 
= { 0 };
        SetFilePointerEx( m_Handle, li, 
&m_nPosition, FILE_CURRENT );
        
return true;
    }

    
void Close()
    {
        
if( IsValid() )
        {
            CloseHandle( m_Handle );
            m_Handle 
= INVALID_HANDLE_VALUE;
        }
    }

    LONGLONG GetSize64() 
const { return m_nSize.QuadPart;}
    LONGLONG GetPosition64() 
const { return m_nPosition.QuadPart;}
    LONGLONG SetPosition64( LONGLONG llNewPosition )
    {
        LONGLONG llOldPosition 
= m_nPosition.QuadPart;
        LARGE_INTEGER liNewPosition 
= { 0 };
        liNewPosition.QuadPart 
= llNewPosition;
        SetFilePointerEx( m_Handle, liNewPosition, NULL, FILE_BEGIN );
        m_nPosition 
= liNewPosition;
        
return llOldPosition;
    }

    DWORD GetSize() 
const { return m_nSize.LowPart;}
    DWORD GetPosition() 
const { return m_nPosition.LowPart; }
    DWORD SetPosition( DWORD dwNewPosition )
    {
        DWORD dwPos 
= m_nPosition.LowPart;
        
if( dwNewPosition > 0x7fffffff )
        {
            SetFilePointer( m_Handle, 
0x7fffffff, NULL, FILE_BEGIN );
            SetFilePointer( m_Handle, dwNewPosition 
- 0x7fffffff, NULL, FILE_BEGIN );
        }
        
else
            SetFilePointer( m_Handle, dwNewPosition, NULL, FILE_BEGIN );
        m_nPosition.HighPart 
= 0;
        m_nPosition.LowPart 
= dwNewPosition;
        
return dwPos;
    }

    
bool IsValid() const { return m_Handle != INVALID_HANDLE_VALUE;}
    HANDLE GetHandle() 
const { return m_Handle;}
protected:
    LARGE_INTEGER m_nSize;
    LARGE_INTEGER m_nPosition;
    HANDLE m_Handle;
};


class CInputFileMapping
{
public:
    CInputFileMapping() : m_Handle(NULL) {}
    
~CInputFileMapping() {
        
if( IsValid() )CloseHandle( m_Handle );
    }

    
bool Attach( CInputFile & file )
    {
        m_Handle 
= CreateFileMapping( file.GetHandle(), NULL, PAGE_READONLY, 00, NULL );
        
if!IsValid() )return false;
        
return true;
    }

    
bool IsValid() const { return m_Handle != NULL;}
    HANDLE GetHandle() 
const { return m_Handle;}
protected:
    HANDLE m_Handle;
};



 

posted @ 2009-07-09 09:30 饭中淹| 编辑 收藏

     摘要: 脚本引擎开发经验。  阅读全文
posted @ 2009-06-08 16:24 饭中淹 阅读(1529) | 评论 (0)编辑 收藏

这两天研究了下游戏中输入法的捕获。
发现微软拼音真是太XX了。
不仅不能实时捕获组合信息,
而且选字翻页还不给NOTIFY。真是无语的XX了。。。
无奈放弃吧。
posted @ 2009-03-16 16:13 饭中淹 阅读(480) | 评论 (2)编辑 收藏

1- 光标位置小于0时,首字符位置前移N个像素。
2- 光标位置大于编辑框宽度时,尾字符位置后移N个像素。
3- 字符串长度增长时,保持首字符位置不变。
4- 字符串减少时,首先保持首字符位置不变,收缩尾部位置,直至尾字符不超出编辑框大小,然后收缩首部位置,直至首字符位置在字符串位置首位,然后收缩尾部。

posted @ 2009-03-14 12:44 饭中淹 阅读(292) | 评论 (0)编辑 收藏

void * _cdecl operator new( size_t size ) throw()
{
 return (void*)szBuffer;
}

void _cdecl operator delete( void * p ) throw()
{
}

void _cdecl operator delete[](void *) throw()
{
}

void *_cdecl operator new[](size_t _Size) throw()
{
 return (void*)szBuffer;
}

posted @ 2009-02-24 02:27 饭中淹 阅读(266) | 评论 (2)编辑 收藏

仅列出标题
共10页: First 2 3 4 5 6 7 8 9 10