DLL类型

1 MFC类库。

   MFC 类库有两种版本,一种是动态的,在DLL中实现,一种是静态的,在LIB中实现。

 

当我们在编写一个EXE时,在向导中会要求我们选择“MFC的使用方式”,一种是“在共享DLL中使用MFC”, 一种是“在静态库中使用MFC”,一种是“使用标准windows库”.  "在共享DLL中使用MFC"是指该EXE调用MFC函数时,要到系统的MFC DLL中去找代码。“在静态库中使用MFC”是指当EXE使用系统LIB库的代码,该段代码编译链接后存在于EXE中。

“使用标准windows库”是指不使用MFC。

 

当我们在写一个DLL时,有两大类。一是纯win32 DLL. 在这种DLL中不使用MFC类。  另一类是使用MFC的DLL, 那么这种DLL用什么方式使用MFC呢? 和上面的EXE使用MFC的方式一样, 静态的就是生成的DLL中包含所要使用的MFC的代码,动态就是不包含。扩展的DLL和动态的一样,其中也不包含MFC代码。

 

 

我做的一个“OA 安全刻录项目”,该EXE loadlibrary一个getkey.dll, 如果我用“使用标准windows库”来生成这个getkey.dll, 那么该程序在某些机器上不能被执行,出现了“配置不对,不能执行之类的错误”,估计是因为该机器连基本的标准windows库都没有,所以想到了把该DLL改为“在静态库中使用MFC”,但是出现了某些函数不能链接的错误,比如coinitialize(). 后来加入了#pragma comment (lib, "ole32.lib")就OK了。

 

 

 

该项在"项目"-》“属性”-》“常规”-》“MFC的使用”。

 

 

另一个有用的项是“代码生成”-》“运行时库”。

 

 

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭