72)MFC测试动态共享库

Posted 小油菜123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了72)MFC测试动态共享库相关的知识,希望对你有一定的参考价值。

动态共享库:

        

        首先我建立一个新的动态库:
                

        然后不选择空项目了,因为我们普通的cpp文件 入口是main  win32入口是winmain  那么这个动态库的入口在哪里  我们就是为了看一看:

                

        出来这样的结果:
                

 

         然后我们看看他是怎么进入这个函数的,就是这个case,下面我们新建一个MFC项目:
                

        发现一个点:
                

      然后 我们修改那个动态库中的代码:
                

      趁着我的动态库是加黑的  所以直接生成就行了。

                因为  我们将动态库和MFC项目放到衣蛾解决方案下的  所以  就不用导入 动态库的.h文件  dll文件和lib文件,只不过在写  #pragma时和#include时  那个文件的路径有区别 要写对

                

 

            修改启动项的项目:

                 

          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                  

          然后我们看结果

                  

        然后 我们看一下那个动态库的入口函数怎么进去的,我们在那个dllmain函数的switch中加一个断点:  

                  

        看我们的运行:

                  

 

 动态共享段

          

           然后  因为那个dll的文件实际上是  都在内存中是共享的,就是   一块内存中存着dll的内容,要是有程序用到dll内容  就直接使用那块内存中存的数据,他们的模型就相当于这样:

                  

              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·

                      

 

       

             那么,我们就得建立关键段来保护这些数据。

 

                  首先建立那个Source.def方式建立动态库:

                      

                然后选择  模块定义文件:

                      

          然后我添加关键段的代码:
                      

 

            然后我再修改动态库的头文件的名字:
                      

          然后  我们生成动态库:
                      

            然后,我们修改一下那个MFC的代码:

                      

 

            给编辑框添加一个变量:

                      

          修改几个参数:
                      

              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·

                      

               添加setvalue按键的处理函数和getvalue按键处理函数代码内容

                      

              然后结果展示:
                      

 

             显示出共享:
                      

 

             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                      

 

  

                      

 

以上是关于72)MFC测试动态共享库的主要内容,如果未能解决你的问题,请参考以下文章

MFC 应用程序和共享库

在共享DLL中使用MFC 和在静态库中使用MFC的区别

在共享DLL中使用MFC与在静态库中使用MFC的区别

在共享DLL中使用MFC与在静态库中使用MFC的区别

UFT公共对象库 动态加载的方法

MFC调用libyara遇到的问题