WinCE下DLL的加载和调用
来源:互联网 发布:数据分析的方法有哪些 编辑:程序博客网 时间:2024/05/21 07:57
//.h文件
<span style="font-family: Arial, Helvetica, sans-serif;">#pragma once</span>
class fr_windowdll{private:HINSTANCE m_hInst;BOOL m_bSucceed;public:fr_windowdll(void);~fr_windowdll(void);static fr_windowdll& Instance();static fr_windowdll _fr_windowdll;BOOL LoadDll( LPCTSTR lpDllName );BOOL FreeDll();typedef BOOL (*cbFun)(char* pbuf, int len, LPVOID lp);typedef BOOL (WINAPI *FrInit)(void);typedef BOOL (WINAPI *FrDeInit)(void);typedef BOOL (WINAPI *FrShow)(void);typedef BOOL (WINAPI *FrHide)(void);typedef void (WINAPI *FrRevHostData)(char* pbuf, int len);typedef void (WINAPI *FrSetCallBackFun)(cbFun fun, LPVOID lp);typedef void (WINAPI *FrSetHostHWnd)(HWND hWnd);// private:FrInitfrInit;FrDeInitfrDeInit;FrShowfrShow;FrHidefrHide;FrRevHostDatafrRevHostData;FrSetCallBackFunfrSetCallBackFun;FrSetHostHWndfrSetHostHWnd;};
</pre><pre name="code" class="cpp">//.cpp文件#include "stdafx.h"#include "fr_windowdll.h"fr_windowdll fr_windowdll::_fr_windowdll;fr_windowdll::fr_windowdll(void){frInit = NULL;frDeInit = NULL;frShow = NULL;frHide = NULL;frRevHostData = NULL;frSetCallBackFun = NULL;frSetHostHWnd = NULL;m_bSucceed = FALSE;}fr_windowdll::~fr_windowdll(void){}fr_windowdll& fr_windowdll::Instance(){return _fr_windowdll;}BOOL fr_windowdll::LoadDll( LPCTSTR lpDllName ){HINSTANCE m_hInst;m_hInst = LoadLibrary( lpDllName );if( m_hInst ){frInit = (FrInit)GetProcAddress(m_hInst, _T("fr_Init"));if(frInit == NULL)return m_bSucceed;frDeInit = (FrDeInit)GetProcAddress(m_hInst, _T("fr_DeInit"));if(frDeInit == NULL)return m_bSucceed;frShow = (FrShow)GetProcAddress(m_hInst, _T("fr_Show"));if(frShow == NULL)return m_bSucceed;frHide = (FrHide)GetProcAddress(m_hInst, _T("fr_Hide"));if(frHide == NULL)return m_bSucceed;frRevHostData = (FrRevHostData)GetProcAddress(m_hInst, _T("fr_revHostData"));if(frRevHostData == NULL)return m_bSucceed;frSetCallBackFun = (FrSetCallBackFun)GetProcAddress(m_hInst, _T("fr_SetCallBackFun"));if(frSetCallBackFun == NULL)return m_bSucceed;frSetHostHWnd = (FrSetHostHWnd)GetProcAddress(m_hInst, _T("fr_SetHostHWnd"));if(frSetHostHWnd == NULL)return m_bSucceed;m_bSucceed = TRUE;}return m_bSucceed;}BOOL fr_windowdll::FreeDll(){if( m_bSucceed )return FreeLibrary(m_hInst);return FALSE;}/******************************* DLL的调用******************************/
BOOL RECEIVE_DATA(char *cBuffer, int dwLen, LPVOID lp);DWORD THDFrRevHostData( LPVOID lpParameter ){CE9101MainDlg* pDlg = (CE9101MainDlg*)lpParameter;while(true){char buff[100];memset(buff, 0, sizeof(buff));WORD len = 0;Sleep(100);fr_windowdll::Instance().frSetCallBackFun(RECEIVE_DATA, NULL);}}// 回调函数实现BOOL RECEIVE_DATA(char *cBuffer, int dwLen, LPVOID lp){if (NULL == cBuffer || 0 == dwLen)return FALSE;char *m_buffer = {0};// memset( m_buffer, 0, sizeof(m_buffer) );wchar_t wcText[1024];memset(wcText, 0, sizeof(wcText));int len = 0;len = MultiByteToWideChar(CP_UTF8, 0, cBuffer, -1, NULL, 0);MultiByteToWideChar(CP_UTF8, 0, cBuffer, -1, wcText, len);char cTemp[1024];memset(cTemp, 0, sizeof(cTemp));wcstombs(cTemp, (LPCTSTR)wcText, len);CString str;str = wcText;OutputDebugString(str);return TRUE;}
0 0
- WinCE下DLL的加载和调用
- wince下dll的加载方法
- 测试下dll的编写和调用
- Wince下演示系统自启动/加载dll方法
- 在WinCE下调用校准触摸屏的API和源代码
- 在WinCE下调用校准触摸屏的API和源代码
- 在WinCE下调用校准触摸屏的API和源代码
- WINCE下的DLL编程(1)
- LR加载和调用dll文件
- C++ 加载dll 及调用lib 和 dll的 方法 和 动态库DLL与静态库lib的区别
- PC端远程调用WINCE中DLL失败的解决办法!!!
- LoadRunner下DLL的调用
- LoadRunner下DLL的调用
- LoadRunner下DLL的调用
- LoadRunner下DLL的调用
- WinCE下调用本地的.exe程序
- wince下wave驱动的调用过程
- 动态加载调用DLL里的类
- MPMoviePlayerViewController播放本地视频一直Loading问题
- 认识自己——我内心的声音
- Linux下LCD 10分钟自动关屏的问题总结
- Why is tracking difficult?
- Eclipse标准版如何安装J2EE插件?Eclipse安装J2EE插件教程
- WinCE下DLL的加载和调用
- 关于后盾网yii框架的学习小结(10)--使用AR类的增删改查
- Android显示网络中的图片
- 封装LDAP 增删改查 方法
- 2015年暑期江苏电信宽带优惠价格
- Execute http post request before directive (AngularJS retrieve data via AJAX before Directive runs)
- 变量和内存
- virtualenv中安装python3.2的numpy包
- 第一篇博客。