C++Builder 6 [BCB6] 共享数据段 错误 测试 (bug 、[Linker Error] Section SHSEG defined in .def file is empty)

本文详细介绍了C++Builder 6在处理共享数据段时遇到的错误,特别是关于[Linker Error] Section SHSEG defined in .def file is empty的问题。作者通过测试指出,该错误可能由多种因素导致,不仅限于共享数据段本身,而是编译器对错误和警告的处理。解决方案强调了确保无错误和警告,正确使用extern和.def文件的重要性。
摘要由CSDN通过智能技术生成

   这个话题,可以说网上绝对没有一个帖子或者答案是齐全的,是让人信服的。更有些都是摘抄的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来访问这些变量。这位楼主导致错误的原因是:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值