把c#代码转换为c++代码.把剩下的分全分了。在线等。。。
beizu 2009-04-07 08:26:11 class CHCDPort
{
#if defined(USE_PRINT_LOG)
FILE* m_fLog;
#endif
HMODULE m_hLib;
typedef BOOL (*PFNCONNHCD)(void); PFNCONNHCD m_pConnHCD;
typedef BOOL (*PFNLEDFLASH)(void); PFNLEDFLASH m_pLEDFlash;
typedef BOOL (*PFNLEDON)(void); PFNLEDON m_pLEDOn;
typedef BOOL (*PFNLEDOFF)(void); PFNLEDOFF m_pLEDOff;
typedef double (*PFNGETHCD)(void); PFNGETHCD m_pGetHCD;
public:
CHCDPort();
virtual ~CHCDPort();
inline BOOL WINAPI Load(void)
{
#if defined(USE_HOOK_HCDPORT)
m_hLib = ::LoadLibrary(_T("HCDPort.dll"));
if (NULL == m_hLib)
{
TCHAR tzTemp[MAX_PATH * 2];
wsprintf(tzTemp, _T("Cannot load HCDPort.dll, app not run in the right way!"));
::MessageBox(NULL, tzTemp, _T("Attention"), MB_ICONSTOP);
return FALSE;
}
m_pConnHCD = (PFNCONNHCD)::GetProcAddress(m_hLib, "ConnectHCD");
if (NULL == m_pConnHCD)
OutputDebugString(_T("function ConnectHCD not found!"));
m_pLEDFlash = (PFNLEDFLASH)::GetProcAddress(m_hLib, "LEDFlash");
if (NULL == m_pLEDFlash)
OutputDebugString(_T("function LEDFlash not found!"));
m_pLEDOn = (PFNLEDON)::GetProcAddress(m_hLib, "LEDOn");
if (NULL == m_pLEDOn)
OutputDebugString(_T("function LEDOn not found!"));
m_pLEDOff = (PFNLEDOFF)::GetProcAddress(m_hLib, "LEDOff");
if (NULL == m_pLEDOff)
OutputDebugString(_T("function GetHCD not found!"));
m_pGetHCD = (PFNGETHCD)::GetProcAddress(m_hLib, "GetHCD");
if (NULL == m_pGetHCD)
OutputDebugString(_T("function GetHCD not found!"));
return (NULL != m_hLib);
#else
return TRUE;
#endif
}
inline void WINAPI Release(void)
{
#if defined(USE_HOOK_HCDPORT)
if (NULL != m_hLib)
FreeLibrary(m_hLib);
m_hLib = NULL;
m_pConnHCD = NULL;
m_pLEDFlash = NULL;
m_pLEDOn = NULL;
m_pLEDOff = NULL;
m_pGetHCD = NULL;
#endif
}
BOOL WINAPI Initialize(HINSTANCE hDllInst);
#if defined(USE_HOOK_HCDPORT)
BOOL WINAPI ConnectHCD(void);
BOOL WINAPI LEDFlash(void);
BOOL WINAPI LEDOn(void);
BOOL WINAPI LEDOff(void);
double WINAPI GetHCD(void);
#endif
};