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

  • 相关阅读:
    122. Best Time to Buy and Sell Stock II
    121. Best Time to Buy and Sell Stock
    72. Edit Distance
    583. Delete Operation for Two Strings
    582. Kill Process
    indexDB基本用法
    浏览器的渲染原理
    js实现txt/excel文件下载
    git 常用命令
    nginx进入 配置目录时
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2940589.html
Copyright © 2011-2022 走看看