跨模块变量
dll中的头文件 申明了了一个extern 变量,
.c文件中 定义它
在测试工程中, 包含了.h 和 .c文件
就可以使用它了。
我很奇怪,这个变量在dll中, 跨模块使用变量啊。
这个变量并没有导出。 为什么exe就可以使用它了
以上是来自学习atl的时候遇到的。
顺便问一下:如果dll中定义了一个宏, exe中使用它,又如何解释?
[解决办法]
这个所谓的dll到底是 一个已经存在的.dll文件吗 还是一个未编译的称为dll的.c源文件
还有 .c文件中是引用dll中的函数 还是自己定义的一个被引用的实现函数
按照我的理解 这不算是夸模块吧 应该只是同一程序的不同部分放在多个文件里 编译器将这些模块里的代码先写一个.List文件 这和放在一个文件里是一样的吧
[解决办法]
模块间也是有交流的,即联系。不同模块间的值传递可以通过全局变量,也可以通过函数调用--参数传递实现;我想在.h文件中定义的变量,他的作用域是全局的,在整个程序中都是可见的,当然其他模块或者源文件可以引用了它,使用它甚至是修改它。
[解决办法]
.c文件中 定义它
凭借这点,你那个变量有且只有一个地方定义的,所以你引用的是.c当中的。