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的引用。于是问题解决。

  • 相关阅读:
    C#等同于正则表达式的写法
    操作XML
    对比工具集合
    IIS 部署的网站无法启动
    jdk_1.8 下载之后的配置
    sql server 2008认识 DENSE_RANK
    c# 二分查找算法
    c# 使用栈实现有效的括号
    sql server 自定义标量函数
    虚拟机cenos 重置密码
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2940589.html
Copyright © 2011-2022 走看看