Module.h 网狐的“com”工具箱

Module.h 网狐的“com”工具箱

Module.h
    网狐的“com”工具箱:
简单介绍下这个东东,其实我以前分析的时候就说过了,这个设计看上去很美,其实用起来不那么方便。这不6603就没有这玩意了。
    网狐的COM接口比较简单,只有两个接口
interface IUnknownEx
  void Release()
  void* QueryInterface(REFGUID guid, DWORD dwQueryVer)
从这个接口可以看出唯一的外部依赖就是guid 和 dwQueryVer

在来看那个help工具模版类
template <typename IModeluInterface> class CTempldateHelper
 //构造函数
 CTempldateHelper(REFGUID Guid, DWORD dwVersion);
 //构造函数
 CTempldateHelper(REFGUID Guid, DWORD dwVersion, LPCTSTR pszModuleDll, LPCSTR pszCreateProc);
两个构造函数,能看出点什么不,,,
// 这代表DLL的名,和DLL中创建组件的函数名,别告诉我你不知道动态加载dll
LPCTSTR pszModuleDll, LPCSTR pszCreateProc
// 这些稀烂班子就是隐藏了动态加载的过程而已
 //获取错误
 inline LPCTSTR GetErrorDescribe() const;
 //指针重载
 inline IModeluInterface * operator->() const;
 //获取接口
 inline IModeluInterface * GetInterface() const;

这样看起来很美,其实隐藏了太多东西,降低了代码的可读性。接口都看不到了,,,坑爹的,,,

你可能感兴趣的:(Module.h 网狐的“com”工具箱)