这个话题,可以说网上绝对没有一个帖子或者答案是齐全的,是让人信服的。更有些都是摘抄的BCB4的一些论坛上的
我花了4个小时,对BCB的共享数据段做了一些较浅,易懂的测试。网上的一些帖子LZ说自己解决了,然后还给了很多自己的看法,大多数都是有问题,或者是断章取义的。
比如以下是一个作者给出的编译成功的条件:
1)ShareUnit.cpp文件中必须用struct,(2)并且必须申明一个该struct的全局变量,(3)并且一定要对这样的struct进行初始化。(4)输出DLL的函数必须至少使用一次上述的struct.
原贴地址:
http://topic.csdn.net/t/20031022/10/2381756.html
是个程序员都知道,怎么可能这样呢,确实,这个LZ太冲动了,太急着下定义了,没有仔细的去考虑通解。(这里没有任何的人身攻击的意思)
事实是他搞错了,经我测试,他是C++的语法搞错了,我们知道,在C++出来之前,C语言是几乎用不到.h文件的。.h文件最广泛的用处是给“类”定义提供了存放处。BCB中如果创建一个单元Unit,那么会同时创建2个文件:.cpp和.h。这位楼主肯定是用了这个方法创建了一个unit,如果.h里面不放任何东西或者放个类都是正确的,我们又知道,我们所要共享的变量是要放在.cpp文件中的,我们在主cpp中要用extern来访问这些变量。这位楼主导致错误的原因是: