zoukankan      html  css  js  c++  java
  • 解决DLL包组织的项目运行报 a class named Txxx exists

     对于使用DLL包方式组织的项目,很多人都知道如果BUILD WITH RUNTIME PACKAGE不勾选上,会有很多的问题。所以一般会将所有的EXE和DLL项目的BUILD WITH RUNTIME PACKAGE勾选上。每当这时候,你以为万事大吉了。兴奋地编译项目,满怀期待地运行,往往一运行却报错:a class named Txxx exists。。。。。。,遇到这个问题的时候,很多人傻眼了,根本不知道该如何解决。

    首先分析一下出现这个错误的原因:BUILD WITH RUNTIME PACKAGE勾选上意味着,整个项目都将使用唯一的一份VCL类,编译器会通过检查类名来判断该类是否已经创建实例使用,如果已经使用,则不允许再另外创建一个该类的实例来使用,于是编译器会告诉你a class named Txxx exists。。。。。。;如果BUILD WITH RUNTIME PACKAGE不勾选上,意味着每一个EXE和DLL都可以使用自已的那一份VCL类,编译器对此不作检查,每一个DLL包中都可以创建同一个类的实例来操作。

    现在已经知道错误的原因了,那么如何解决呢?解决方法就是创建一个BPL包,将多个DLL包都要使用的类放进这个BPL包中,然后在要使用该类的DLL包的BUILD WITH RUNTIME PACKAGE的下一行加入对该BPL的引用。于是问题解决。

  • 相关阅读:
    Reverse Linked List****
    DAI(dynamic arp inspection)
    DHCP Option 82
    Lab SSH Cisco
    Lab 802.1X+AAA
    Lab AAA-本地认证
    为边界路由器配置AAA
    端口安全总结
    Lab CBAC
    AAA 基础实验
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2940589.html
Copyright © 2011-2022 走看看