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

📄 win32环境下dll编程原理.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'>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'>EXE</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'>EXE</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'>&nbsp;<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'>EXE</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'>Null</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'>Win32</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'>GetModuleHandle</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'>Win32</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'>GetModuleHandle</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'>&nbsp;<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'>&nbsp;<br>
  <br>
  &nbsp;&nbsp;</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'>LoadLibrary</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'>&nbsp;<br>
  1</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'>&nbsp;</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'>EXE</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'>&nbsp;<br>
  2</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'>&nbsp;</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'>&nbsp;<br>
  3</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'>&nbsp;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'>&nbsp;<br>
  4</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'>&nbsp;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'>&nbsp;<br>
  5</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'>&nbsp;</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'>Path</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'>&nbsp;<br>
  &nbsp;&nbsp;</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'>VC</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'>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'>&nbsp;<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'>&nbsp;<br>
  <br>
  &nbsp;&nbsp;Microsoft&nbsp;</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'>VC</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'>EXE</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'>EXE</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'>EXE</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'>P

⌨️ 快捷键说明

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