我正在使用Delphi 2007专业版.我有一个运行时包,其中包含我正在开发的许多基于TFrames的复合组件.还有一个相关的设计包,可以将这些组件安装到工具选项板中.这些TFrame后代由于各种原因使用许多第三方组件,并且还作为类层次结构彼此继承.到目前为止(并且在这里有一些很好的建议的帮助下),这种方法非常适合我想要完成的任务.
最近我遇到了一个问题,然而,编译/构建运行时包.最初,它与一些以nxEventLog.pas为中心的冲突有关,遗憾的是我没有记录的细节,但基本上是"这种方法的定义与之前的定义不一致".就像你的实施声明与你的班级声明不一致时得到的那样.此文件是NexusDB文件(该应用程序使用NexusDB嵌入式服务器).
我尝试过各种各样的事情,但从来没有成功地让冲突消失.我最接近的是编译,让IDE请求将完全不相关的单元的TRUCKLOAD添加到contains/uses子句中.稍后会详细介绍,但如果我继续这样做,它仍然无效.nxEventLog文件未从其原始状态更改.
无法找出为什么出现这个错误 - 它出现在Nexus文件中,而不是我的实际包或单位,而且我在Nexus代码中没有改变任何内容 - 我终于继续完成并完全卸载了Nexus,并且手动搜索以确保我已删除所有相关的dcu和bpl文件,然后重新安装它.(我正在运行Nexus 2.07)
启动IDE后,我收到以下错误:
bds.exe - 找不到入口点
---------------------------
过程入口点
@ Nxsddatadictionary @TnxBaseTableDescriptor @ LoadFromReader $ qqrp15Classes @TReader可以不在动态链接库NexusDB207sd110.bpl中.
---------------------------
好的
其次是:
无法加载包.... NexusDB207dv110.bpl
无法加载包.... cmTPPanels_D2007_DesignReg.bpl找不到
指定的程序oculd.
是否要在下次加载包时尝试加载此包?
一旦我卸载了cmTPPanels运行时/设计包(我的组件集),通过组件 - >安装包 - >删除,我的其他"普通Nexus DB"应用程序似乎工作正常,包括那些包含Nexus的nxEventLog ocmponent的应用程序.这似乎表明问题肯定在我的安装包中.
因此,在确认我的Nexus安装似乎不是实际问题后,我打开了包含两个软件包的项目组.构建(或编译)运行时包,Delphi IDE为我提供了上面提到的相同对话框:
"要使此程序包与其他已安装的程序包兼容,必须进行以下更改.选择"确定"以应用这些更改并重新生成程序包.
添加dsnap.
dsnap包含隐式单元DBClient,Provider,DataBkr,MidConst,Midas,DSIntf.
添加ibxpress.
ibxpress包含隐式单元IBUtils,IB,IBSQLMonitor,IBHeader,IBIntf,IBXConst,IBXMLHeader,IBSQL,IBBlob,IBCustomDataSet,IBDatabase,IBErrorCodes,IBDatabaseInfo,
IBExternals,IBInstallHeader,IBServices.
添加IndyCore.
IndyCore包含隐式单元IdIOHandlerSocket,IdSocks,IdIOHandlerStack,IdBuffer,IdResourceStringsCore,IdIntercept,IdCustomTransparentProxy,IdExceptionCore,IdSocketHandle,IdIOHandler,IdTCPConnection,IdReplyRFC,IdReply,IdTCPClient,IdIPAddress,IdAssignedNumbers.
添加IndySystem.
IndySystem包含隐式单元IdBaseComponent,IdGlobal,IdStreamVCL,IdSysNativeVCL,IdSysVCL,IdSysBase,IdSysWin32,IdResourceStrings,IdException,IdSys,IdStream,IdObjs,IdComponent,IdStack,IdStackWindows,IdWship6,IdWinSock2,IdStackConsts,IdStackBSDBase,IdAntiFreezeBase.
添加Rz30DBCtls90.
Rz30DBCtls90包含隐式单元RzDBNav,RzDBLbl,RzDBStat.
添加lmdweb30_d10.
lmdweb30_d10包含隐式单元LMDWebHTTPGet,LMDHTMLObjectUnit,LMDFSSupport,LMDHTTPSupp,LMDStringsSupport,LMDURLSupp,LMDRASSupport,LMDRASCF,LMDWebConst,LMDRAS,LMDSyncUnit,LMDWebBase,LMDWebLex,LMDWebHTMLLex,LMDWebDownloadFormUnit,LMDDownload,LMDInetConst,LMDWebConfig,LMDWebInfo.
添加lmddsg30_d10.
lmddsg30_d10包含隐式单元LMDDsgPropInsp,LMDDsgPropEditors,LMDDsgMenuEditor,LMDDsgObjects,LMDDsgClass,LMDDsgCst,LMDDsgCollectionEditor,LMDDsgStrsEditor,LMDDsgPropPage,LMDDsgModule.
添加lmdstorage10_d10.
lmdstorage10_d10包含隐式单元LMDStorFormProperties,LMDStorFormHook,LMDStorBase,LMDStorConsts,LMDStorPropertiesStorage,LMDStorCommon,LMDStorINIVault.
添加ExceptionExpert11.
ExceptionExpert11包含隐式单元ExceptionLog,EDisAsm,EHash,EListView,EConsts,ETypes,ELogManager,EEncrypt,EBase64,EXMLBuilder,ECore,EWebTools,EZip,EZlib,ESockets,ELang,EHook,EDebug,ELeaks.
添加RemObjects_Core_D11.
RemObjects_Core_D11包含隐式单元(一个或多个)uROClasses,uROSerializer,uROXMLIntf,uROMSXMLImpl,uRORes,uROMSXML2_TLB,uROClient,uRODLToXML,uRODL,uROTypes,uROHTTPTools,uROClientIntf,uROEncryption,uROZlib,uROCipher1,uROHash,uRODECUtil,uRODECConst,uROCipher,uROCiphers,uROBinaryHelpers,uROCompression ,uROEventRepository,uROServerIntf,uROSessions,uRODynamicRequest,uRORemoteService,uROThreadPool,uROServer,uROAsync,uROThread,uROBinMessage,uROStreamSerializer.
添加RemObjects_Indy_D11.
RemObjects_Indy_D11包含隐式单位uROSuperTCPChannel,uROSCHelpers.
添加DataAbstract_Core_D11.
DataAbstract_Core_D11包含隐式单元(一个或多个)uDADataTable,uDASupportClasses,uDARes,uDABusinessProcessor,uDAEngine,uDASQL92QueryBuilder,uDASQL92Interfaces,uDAWhere,uDAInterfaces,DataAbstract4_Intf,DataAbstract3_Intf,uDAHelpers,uDAClasses,uDAMemDataTable,uDAMemDataset,uDAExpressionEvaluator,uDAMacros,uDAUtils,uDAXMLUtils,uDADriverManager,uDAInterfacesEx,uDADelta ,uDARegExpr,uDAScriptingProvider,uDAOracleInterfaces,uDAMacroProcessors,uDADataStreamer,uDACDSDataTable,uDARemoteDataAdapter,uDAReconcileDialog,uDAReconcileDialogDetails,uDARemoteDataAdapterRequests,uDABinAdapter.
添加VirtualTreesD11.
VirtualTreesD11包含隐式单元VirtualTrees,VTAccessibilityFactory.
添加VirtualShellToolsD11.
VirtualShellToolsD11包含隐式单元VirtualExplorerTree,ColumnForm,VirtualResources,VirtualShellAutoComplete,VirtualShellNotifier,VirtualScrollbars.
添加dxBarDBNavD11.
dxBarDBNavD11包含隐式单元dxBarDBNav,dxBarDBNavStrs.
添加dxBarExtDBItemsD11.
dxBarExtDBItemsD11包含隐式单元dxBarExtDBItems.
添加cxVerticalGridD11.
cxVerticalGridD11包含隐式单元cxDBVGrid,cxVGridViewInfo,cxVGridUtils,cxVGrid,cxVGridNewCategory,cxVGridConsts.
添加dxNavBarD11.
dxNavBarD11包含隐式单元(一个或多个)dxNavBar,dxNavBarExplorerViews,dxNavBarConsts,dxNavBarGraphics,dxNavBarStyles,dxNavBarBase,dxNavBarViewsFact,dxNavBarCollns,dxNavBarVSToolBoxViews,dxNavBarBaseViews,dxNavBarOffice11Views,dxNavBarOfficeViews,dxNavBarXPViews.
添加dxLayoutControlD11.
dxLayoutControlD11包含隐式单位dxLayoutControl,dxLayoutCustomizeForm,dxLayoutEditForm,dxLayoutCommon,dxLayoutLookAndFeels,dxLayoutControlAdapters.
添加dxMasterViewD11.
dxMasterViewD11包含隐式单元dxMasterViewColumns,dxMasterView,dxMasterViewStrs.
添加dxdbtrD11.
dxdbtrD11包含隐式单元dxdbtrel,dxlocate,dxtree,dxdbtree.
添加dxPSCoreD11.
dxPSCoreD11包含隐式单元(一个或多个)dxPSEdgePatterns,dxPSUtl,dxPSImgs,dxPSRes,dxPrnDev,dxPSGlbl,dxPSEngn,dxPSSngltn,dxPSESys,dxBase,dxPSCore,dxPSPrVwStd,dxPSPopupMan,dxPgsDlg,dxWrap,dxPSHFToolBarBld,dxPSfmAutoHFTextFmt,dxPSEvnt,dxPrnPg,dxPpAttr,dxBkGnd,dxFEFDlg ,dxPcPrVw,dxExtCtrls,dxExtCtrlsStrs,dxPSForm,dxPSAutoHFTextMnuBld,dxfmDfnStl,dxfmMnPg,dxfmClr,dxPreVw,dxPSPrVw,dxfmZoom,dxPSExtDlgs,dxfmPNFmt,dxfmDTFmt,dxPSPrVwOpt,dxPSfmCompositionDsg,dxPSfmCompositionAdd,dxPSCompsProvider,dxPSXplorerTreeView,dxPSfmReportProperties,dxPSPgsMnuBld,dxfmChFN,dxPSfmTtl,dxPSCPDsg,dxPSfmLnkAdd ,dxPSfmEditDesc,dxPSFillPatterns,dxPrnDlg.
添加dxPScxCommonD11.
dxPScxCommonD11包含隐式单元dxPScxCommon.
添加dxPScxGridLnkD11.
dxPScxGridLnkD11包含隐式单位dxPScxGridLnk.
添加NexusDB207se110.
NexusDB207se110包含隐式单元(一个或多个)nxseAutoComponent,nxseAllEngines,nxseRecordCompressionEngineSmart,nxseRecordEngineVariable,nxseFulltextEngineCursor,nxseFulltextEngineTable,nxseRefIntEngine,nxseJournalEngine,nxseSortEngineMerge,nxseTemporaryStorageChunked,nxseRecordEngineStatic,nxseIndicesEngineSimple,nxseIndexBase,nxseHeapEngineCached,nxseBlockHeapEngineNonfragmenting,nxseBlobEngineSimple,nxseIndexEngineStaticKeyBstarTree,nxseHeaderAccess,nxseEncryptionEngineBlowfishRC4,nxseBlobEngineSegmented,nxseAutoIncEngineSimple,nxseStreamEngineSimple .
添加NexusDB207sr110.
NexusDB207sr110包含隐式单元(一个或多个)nxsrSqlEngineBase,nxExeConst,nxsrServerEngine,nxsrBlobHandlerCaching,nxsrTimeoutHandling,nxsrTypes,nxsrBlobHandlerBase,nxsrBufferManager,nxsrFileImplWin32,nxsrStrings,nxsrEncryptionEngineBase,nxsrConst,nxsrTemporaryStorageBase,nxsrBlobEngineBase,nxsrSubEngineBase,nxsrBlobHandlerPassthrough,nxsrRecordMapperEngine,nxsrFieldMapperEngineAutoInc,nxsrFieldMapperEngine,nxsrFieldMapper,nxsrSortEngineBase,nxsrFulltextEngineBase ,nxsrIndexEngineBase,nxsrRecordEngineBase,nxsrRefIntEngineBase,nxsrAutoIncEngineBase,nxsrStreamEngineBase,nxsrTableLockContainer,nxsrDataDictionary,nxsrFileHandling,nxsrServerCursorMapping,nxsrSystemStorage,nxsrRecordCompressionEngineBase,nxsrHeapEngineBase,nxsrBlockHeapEngineBase.
添加NexusDB207sq110.
NexusDB207sq110包含隐式单元nxsqlEngine,nxsqlFunctions,nxsqlDataDef,nxsqlFunctionOrganizer,nxsqlCondExp,nxsqlTableExp,nxsqlViews,nxsqlProxies,nxSQLParse,nxsqlPSM,nxsqlTest,CocoaBaseW,nxsqlBase,nxsqlDataManip,nxSQLTok,nxSQLProxiesIntf.
添加NexusDB207lg110.
NexusDB207lg110包含隐式单元nxlgEventLogDispatcher,nxlgEventLog.
添加NexusDB207dv110.
NexusDB207dv110包含隐式单元nxServerManager,nxBaseServerComp,nxConfigSettings.
添加MPCommonLibD11.
MPCommonLibD11包含隐式单元MPDataObject,MPCommonObjects,MPCommonUtilities,MPResources,MPShellTypes,MPThreadManager,MPShellUtilities.
有什么奇怪之处,除了除厨房水槽之外几乎所有东西的事实,提到的许多包装甚至与我试图安装的这个包装中包含的组件无关; DataSnap,Indy,IBExpress,RemObjects Data Abstract等 - 我的组件中甚至都没有引用它们.
如果我对所有这些添加的单元/包单击"确定",则会出现更多混乱,并且无法编译.
NexusDB文件夹以及我正在开发的这些组件所在的文件夹都在我的库路径中,最后列出了我的自定义组件.
我正在研究一个虚拟机,并且可以根据需要进行快照,但我无论如何都无法解决这个问题,而且很明显我对编译器的工作原理没有足够的深入了解寻找问题的诊断.任何人都可以提及哪些可以帮助我这样做,将不胜感激.
通常,这些错误来自路径上相同BPL和/或DCP文件的不兼容或更常见的多个版本.对您的系统进行所有BPL和DCP的完整搜索,并确保每个BPL和DCP只有一个副本.
跟踪这些类型的错误可能是一个巨大的痛苦.: - /