2012-09-27 32 views
11

对于过去,我一直在试图为几个应用程序创建插件。这些总是DLL文件,我已经按照各种应用程序的SDK文档中的说明,但我从来没有真的了解我在做什么。 为了解决这个问题,我试图找到更多与编程的C++中的一些实际问题,包括dll文件处理,列表把我的头存在的最优惠的条件的任何资源:一个关于dll编程的好教程的请求

  • dll文件,他们用了什么,为什么?
  • 为什么要在libs上使用dll文件?
  • 那是.def文件的全部内容,是微软唯一的东西吗?
  • 什么是清单文件?
  • ...

基本上,所有这一切可以在IDE(Visual Studio和XCxcode我)可以看到那些可爱的选择 - 一个人如何了解它们是什么,以及如何结合使用它们代码比编写'hello world'应用程序稍微复杂一点? 我想我正在寻找更多关于编程的“架构视图”。迄今为止,在我所有的C++书籍中发现的最多的是,总是有关于 source code > object code > linked w/ other obj code > executable 的部分,但是就它而言。

那么,对于想要学习C++语法的人来说,是否有任何好书?我了解代码,了解面向对象,了解STL。下一步我需要一本好书或资源。

谢谢! (对不起,如果这是一个模糊的问题,但它已经到了这一步)

+1

噢,我会推荐(imho事实标准)http://www.amazon.com/Patterns-Elements-Reusable-Object-Oriented-Software/dp/0201633612/ref=wl_it_dp_o_pC_nS_nC?ie=UTF8&colid=2E0Z6RTE6OPPQ&coliid= I3O54RFCDN6EQN为“迈向世界的一步”。对于其他问题,我会回答一个问题:你知道静态链接和动态链接吗? – Najzero

+0

也许:)据我所知,动态链接是库在运行时链接(即dll)和静态链接在编译时(lib文件)。 当然,这可能是错误的,即使它是正确的,但从系统架构的角度来看,我并没有很好的理解这些东西。如果这甚至是正确的话:D –

回答

1

我可以引用你到以下参考。看看它们是否对你有任何用处。

  1. C++ DLL Programming
  2. Assemblies
+0

非常好,我会看看那些 - 非常感谢你。 –

4

有一个优良article在CodeProject在C DLL ++编程。

+0

看起来非常好,深入。谢谢!如果您知道任何涉及这些主题的书籍,请让我知道:) –

9

dll文件,它们用于什么目的?为什么?

dll文件与Microsoft Windows上的.exe文件相同(标题中的1位除外,表示它是DLL)。任何使用它的程序都会共享dll内存,从而节省内存。 Dll可以根据需要从RAM加载和卸载,从而节省内存。此外,他们可以单独无需重新编译 .exe文件被更新(您可能没有可用的源代码。)

为什么要使用的DLL文件在库?

库,也被称为静态库,需要EXE是每次变更时重新编译文件,DLL没有。 Dll 节省内存如果多个进程使用它们并且可以从集中位置更新所有程序。对于库,你将不得不重新编译并单独替换每个.exe。 Dll是必须包含在exe文件中的额外文件,所以dll可能对互联网发行不利

什么是.def文件的全部内容,它是微软唯一的东西吗?

一个.def是一个编译器特定的文件,告诉编译器如何在内存中布局dll(API)。它们可以在许多不同的编译器中找到,包括gcc,尽管支持的功能和语法有所不同。

什么是清单文件?

清单是Windows XP SP3的新增功能,它基本上告诉Windows它需要什么版本的系统库以及二进制是否需要管理员权限才能运行。 (请记住,DLL只是一个不同的exe文件)。我相信manfest也用于代码签名,验证可执行文件是否合法。

+0

谢谢 - 非常有用的东西。现在,我需要的只是一本谈论这些事情的书,所以我可以将它们放到更大的背景中。 –