摘要:
可变参数给编程带来了很大的方便,在享受它带来的方便的同时,很有必要了解一下其实现方式,在了解编程语言的同时,也可以扩展编程的思路。可变参数的实现要解决三个问题:如何调用带有可变参数的函数如何编译有可变参数的程序在带有可变参数的函数体中如何持有可变参数第一个问题,调用时在可以传入可变参数的地方传入可变参数即可,当然,还有一些需要注意的地方,后面会提到。第二个问题,编译器需要在编译时采用一种宽松的检查方案,,这会带来一些问题,比如对编程查错不利。第三个是我在这里要关心的问题,先以C语言为例分析其实现原理。printf和scanf是C语言标准库中最常见的可变参数函数,printf的签名是int pr 阅读全文
摘要:
在使用 VC 链接 dll 时,通常需要一个导入库文件(.lib),但有时我们只有一个 dll 文件,怎么办呢?通常,在链接库文件时,需要一个 (.lib)文件,lib 文件分为两种:一种为静态链接库(StaticLibary,以下简称“静态库”),另一种为动态连接库(DLL,以下简称“动态库”)的导入库(ImportLibary,以下简称“导入库”)。VC 在链接 dll 时,需要根据导入库(.lib)来定位 dll 中的符号位置。没有这个文件,VC 链接器将不能正常链接。解决此问题的办法有三个:使用DLL to Lib 工具,根据 dll 文件生成 lib 文件。使用 LoadLibrar 阅读全文