|
Gaudi Framework, version v23r4 |
| Home | Generated: Mon Sep 17 2012 |
00001 // LibSymbolInfo.h: interface for the CLibSymbolInfo class. 00002 // 00004 00005 #if !defined(AFX_LIBSYMBOLINFO_H__1A7003B4_BA53_11D1_AE46_1CFB51000000__INCLUDED_) 00006 #define AFX_LIBSYMBOLINFO_H__1A7003B4_BA53_11D1_AE46_1CFB51000000__INCLUDED_ 00007 00008 #if _MSC_VER >= 1000 00009 #pragma once 00010 #endif // _MSC_VER >= 1000 00011 00012 #include <string> 00013 #include <iostream> 00014 00015 #include <stdio.h> 00016 #include <assert.h> 00017 #include <windows.h> 00018 00019 class CLibSymbolInfo 00020 { 00021 public: 00022 CLibSymbolInfo(); 00023 virtual ~CLibSymbolInfo(); 00024 BOOL DumpSymbols(LPTSTR lpszLibPathName, std::ostream& pFile); 00025 std::string GetLastError() const; 00026 00027 protected: 00028 std::string m_strResultsString; 00029 std::string m_strErrorMsg; 00030 00031 BOOL Dump(LPTSTR lpszLibPathName, std::ostream& pFile); 00032 BOOL IsRegularLibSymbol( PSTR pszSymbolName ); 00033 BOOL IsFiltedSymbol( std::string& pszSymbolName ); 00034 DWORD ConvertBigEndian(DWORD bigEndian); 00035 }; 00036 00037 enum errMMF { errMMF_NoError, errMMF_FileOpen, 00038 errMMF_FileMapping, errMMF_MapView }; 00039 00040 class MEMORY_MAPPED_FILE 00041 { 00042 public: 00043 MEMORY_MAPPED_FILE( PSTR pszFileName ); 00044 ~MEMORY_MAPPED_FILE(void); 00045 00046 PVOID GetBase( void ){ return m_pMemoryMappedFileBase; } 00047 DWORD GetFileSize( void ){ return m_cbFile; } 00048 BOOL IsValid( void ) { return errMMF_NoError == m_errCode; } 00049 errMMF GetErrorType(){ return m_errCode; } 00050 00051 private: 00052 00053 HANDLE m_hFile; 00054 HANDLE m_hFileMapping; // Handle of memory mapped file 00055 PVOID m_pMemoryMappedFileBase; 00056 DWORD m_cbFile; 00057 errMMF m_errCode; 00058 }; 00059 00060 typedef MEMORY_MAPPED_FILE* PMEMORY_MAPPED_FILE; 00061 00062 #endif // !defined(AFX_LIBSYMBOLINFO_H__1A7003B4_BA53_11D1_AE46_1CFB51000000__INCLUDED_)