DLL自定义窗口类
2011-1-9
目的是模拟Windows在DLL中注册窗口类,然后在其它模块中调用。代码如下:
调用模块:
DLL模块:
def文件
总结:
1. 解决方案会生成一个Debug文件夹(当然在Release模式下生成Release文件夹),用于统一存放各工程的输出(DLL、LIB或 EXE)。
2. 如果模块中没有调用DLL中的任何函数,那么DLL不好被加载。也就是说此时删除DLL,也不会影响程序正常执行。所以要为DLL加载(以便注册自定义窗口类),就得调用其中的函数。DLL中,将user32.dll中的CreateWindowEx封装成为MyCreateWindowEx,目的是让调用模块在CreateWindow的同时也加载了DLL的代码,这样就对自定义的窗口类进行了注册。个人推测,在用户调用user32.dll中的CreateWindowEx时,在user32.dll初始代码中对”button”这样的系统窗口类已经进行了注册。