complier负责将每个源码文件编译成OBJ
linker负责将每个OBJ\LIB之类的进行链接
比如你需要EXE还是DLL就是链接器的一个选项,对应于生成的二进制文件
中的一个WORD,Windows装载器根据这个字来判断。
Link和Complier里面的东西太多,需要你精通PE格式、Windows底层的一些东西。不然看不懂。
linker负责将每个OBJ\LIB之类的进行链接
比如你需要EXE还是DLL就是链接器的一个选项,对应于生成的二进制文件
中的一个WORD,Windows装载器根据这个字来判断。
Link和Complier里面的东西太多,需要你精通PE格式、Windows底层的一些东西。不然看不懂。
解决方案 »
- 在VC atl 控件中调用 WebService 发现 在VC项目名称上,单击右键,选择“添加Web引用”是不可能的,灰色的,请问如何添加 Web引用
- 全局变量出现的奇怪问题
- 一个继承自 CPropertySheet 的类有没有像 OnInitDialog 那样的函数?
- 一直没有解决的问题,继续等高手解答
- 关于向导的使用,请高手指教!
- 我用CTime::GetCurrentTime();得到的时间,如何最快速的转化成从1970.01.01到现在经历过的秒数阿
- 发现了MS的BUG?
- 关于_beginthread 函数在使用中遇到的问题,紧急求救!
- 急。。。。。。。。。。。谁有在win9x下访问并行口的源代码。。
- ATL 服务问题(在线等!)
- 请教,单文档或是多文档程序中,怎样才能在启动时不让程序自动创建新文档?
- 怎么想Richview那样在对话框中显示Word里的公式?(100)
如果是动态链接,EXE或者DLL有一个导入表,提供了每个动态链接的函数的所在位置(包括DLL文件名和函数在DLL中的RVA).
这些信息是链接时LIB提供给链接器的.
链接器才不管也不知道你用了哪些头文件.
Runtime),到所有生成的.OBJ里面去找,找不到就报错.
这时你就需要在链接的时候指示它,也就是所谓的LIB的作用.