读书人

跨模块变量解决思路

发布时间: 2012-10-29 10:03:53 作者: rapoo

跨模块变量
dll中的头文件 申明了了一个extern 变量,

.c文件中 定义它

在测试工程中, 包含了.h 和 .c文件

就可以使用它了。

我很奇怪,这个变量在dll中, 跨模块使用变量啊。

这个变量并没有导出。 为什么exe就可以使用它了


以上是来自学习atl的时候遇到的。

顺便问一下:如果dll中定义了一个宏, exe中使用它,又如何解释?

[解决办法]
这个所谓的dll到底是 一个已经存在的.dll文件吗 还是一个未编译的称为dll的.c源文件

还有 .c文件中是引用dll中的函数 还是自己定义的一个被引用的实现函数

按照我的理解 这不算是夸模块吧 应该只是同一程序的不同部分放在多个文件里 编译器将这些模块里的代码先写一个.List文件 这和放在一个文件里是一样的吧

[解决办法]
模块间也是有交流的,即联系。不同模块间的值传递可以通过全局变量,也可以通过函数调用--参数传递实现;我想在.h文件中定义的变量,他的作用域是全局的,在整个程序中都是可见的,当然其他模块或者源文件可以引用了它,使用它甚至是修改它。
[解决办法]
.c文件中 定义它

凭借这点,你那个变量有且只有一个地方定义的,所以你引用的是.c当中的。

读书人网 >C语言

热点推荐