平民程序 - linghuye's blog

天下风云出我辈,一入江湖岁月催。皇图霸业谈笑中,不胜人生一场醉。提剑跨骑挥鬼雨,白骨如山鸟惊飞。尘事如潮人如水,只笑江湖几人回。

随笔 - 221, 文章 - 0, 评论 - 680, 引用 - 0
数据加载中……

静态lib,DLL,EXE的形式与本质

1.形式上都是2进制代码.
2.应用接口编程思想,三种形式进行接口交互,三种形式可以任意变化,最终产生不同形式组合的程序,Blizzard只有一个主程序,但开发一定是lib接口化.
3.使用预定义组成一个源码
#ifndef _LIB
BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
return TRUE;
}

extern "C"  __declspec(dllexport) IUICraft* UICraftCreate()
{
return new CUICraft;
}
#else // Static Lib
IUICraft* UICraftCreate()
{
return new CUICraft;
}
#endif//_LIB
对于动态DLL,采用动态加载,静态Lib使用extern手段,但严格遵循接口编程。
4.一个动态DLL可以同时向外展现内部C++ dllexport类, C++接口,COM组件对象以交给不同的最终用户使用。

posted on 2005-08-13 17:22 linghuye 阅读(784) 评论(0)  编辑 收藏 引用 所属分类: 编程札记

只有注册用户登录后才能发表评论。