⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 基于visualc++6.0的ddl编程实现.htm

📁 我在网上收集的一些有关vcDLL编程的文章。
💻 HTM
📖 第 1 页 / 共 5 页
字号:
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>中的函数和数据,实际上</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>Windows</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>操作系统中几乎所有的内容都由</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>以一种或另外一种形式代表着,例如显示的字体和图标存储在</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>GDI DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>中、显示</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>Windows</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>桌面和处理用户的输入所需要的代码被存储在一个</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>User DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>中、</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>Windows</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>编程所需要的大量的</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>API</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>函数也被包含在</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>Kernel DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>中。</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'><br>
  <br>
  </span><span style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:
  Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>  在</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>Windows</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>操作系统中使用</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>有很多优点,最主要的一点是多个应用程序、甚至是不同语言编写的应用程序可以共享一个</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>文件,真正实现了资源</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>&quot;</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>共享</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>&quot;</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>,大大缩小了应用程序的执行代码,更加有效的利用了内存;使用</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>的另一个优点是</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>文件作为一个单独的程序模块,封装性、独立性好,在软件需要升级的时候,开发人员只需要修改相应的</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>文件就可以了,而且,当</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>中的函数改变后,只要不是参数的改变</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>,</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>程序代码并不需要重新编译。这在编程时十分有用,大大提高了软件开发和维护的效率。</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'><br>
  <br>
  </span><span style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:
  Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>  既然</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>那么重要,所以搞清楚什么是</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>、如何在</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>Windows</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>操作系统中开发使用</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>是程序开发人员不得不解决的一个问题。本文针对这些问题,通过一个简单的例子,即在一个</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>中实现比较最大、最小整数这两个简单函数,全面地解析了在</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>Visual C++</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>编译环境下编程实现</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>的过程,文章中所用到的程序代码在</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>Windows98</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>系统、</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>Visual C++6.0</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>编译环境下通过。</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'><br>
  <br>
  </span><span style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:
  Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>  <b>二、</b></span><b><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span></b><b><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>的概念</span></b><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'><br>
  <br>
  </span><span style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:
  Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>  </span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>是建立在客户</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>/</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>服务器通信的概念上,包含若干函数、类或资源的库文件,函数和数据被存储在一个</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>(服务器)上并由一个或多个客户导出而使用,这些客户可以是应用程序或者是其它的</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>。</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>库不同于静态库,在静态库情况下,函数和数据被编译进一个二进制文件(通常扩展名为</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>*.LIB</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>),</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>Visual C++</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>的编译器在处理程序代码时将从静态库中恢复这些函数和数据并把他们和应用程序中的其他模块组合在一起生成可执行文件。这个过程称为</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>&quot;</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>静态链接</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>&quot;</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>,此时因为应用程序所需的全部内容都是从库中复制了出来,所以静态库本身并不需要与可执行文件一起发行。</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'><br>
  <br>
  </span><span style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:
  Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>  在动态库的情况下,有两个文件,一个是引入库(</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>.LIB</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>)文件,一个是</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>文件,引入库文件包含被</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>导出的函数的名称和位置,</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>包含实际的函数和数据,应用程序使用</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>LIB</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>文件链接到所需要使用的</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>文件,库中的函数和数据并不复制到可执行文件中,因此在应用程序的可执行文件中,存放的不是被调用的函数代码,而是</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>中所要调用的函数的内存地址,这样当一个或多个应用程序运行是再把程序代码和被调用的函数代码链接起来,从而节省了内存资源。从上面的说明可以看出,</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>和</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>.LIB</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>文件必须随应用程序一起发行,否则应用程序将会产生错误。</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'><br>
  <br>
  </span><span style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:
  Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>  微软的</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>Visual C++</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;
  mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>支持三种</span><span
  lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:Tahoma'>DLL</span><span
  style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:Tahoma;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -