5

Delphi2007Proを使用しています。TFrameに基づいて開発しているいくつかの複合コンポーネントを含むランタイムパッケージがあります。これらのコンポーネントをツールパレットにインストールする関連するデザインパッケージもあります。これらの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にありません。
---------------------------
OK

に続く:

パッケージをロードできません....NexusDB207dv110.bplパッケージをロード
できません....cmTPPanels_D2007_DesignReg.bpl
指定されたプロシージャが見つかりません。
次回パッケージがロードされるときに、このパッケージのロードを試行しますか?

cmTPPanelsランタイム/デザインパッケージ(コンポーネントセット)を[コンポーネント]->[パッケージのインストール]->[削除]からアンインストールすると、NexusのnxEventLog ocmponentを含む、他の「通常のNexusDB」アプリケーションが正常に動作するようです。これは、問題が間違いなくどこかのインストールパッケージにあることを示しているようです。

そこで、Nexusのインストールが実際の問題ではないことを確認した後、両方のパッケージを含むプロジェクトグループを開きました。ランタイムパッケージをビルド(またはコンパイル)すると、DelphiIDEは上記と同じダイアログボックスを表示します。

「このパッケージを他のインストール済みパッケージと互換性を持たせるには、次の変更が必要です。[OK]を選択してこれらの変更を適用し、パッケージを再構築してください。」

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、IdAsが含まれています。

IndySystemを追加します。
IndySystemには、暗黙のユニットIdBaseComponent、IdGlobal、IdStreamVCL、IdSysNativeVCL、IdSysVCL、IdSysBase、IdSysWin32、IdResourceStrings、IdException、IdSys、IdStream、IdStackSt2、IdStack、IdStackWindows、IdWship6が含まれています。

Rz30DBCtls90を追加します。
Rz30DBCtls90には、暗黙のユニットRzDBNav、RzDBLbl、RzDBStatが含まれています。

lmdweb30_d10を追加します。
lmdweb30_d10には、暗黙のユニットLMDWebHTTPGet、LMDHTMLObjectUnit、LMDFSSupport、LMDHTTPSupp、LMDStringsSupport、LMDURLSupp、LMDRASSupport、LMDRASCF、LMDWebConst、LMDRAS、LMDSyncUnit、LMDWebBase、LMDWebLex、LMDWebHTMLLex、LMDWebDownload

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、uROC 、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、uDAM 、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、dxNavBar

dxLayoutControlD11を追加します。
dxLayoutControlD11には、暗黙のユニットdxLayoutControl、dxLayoutCustomizeForm、dxLayoutEditForm、dxLayoutCommon、dxLayoutLookAndFeels、dxLayoutControlAdaptersが含まれています。

dxMasterViewD11を追加します。
dxMasterViewD11には、暗黙のユニットdxMasterViewColumns、dxMasterView、dxMasterViewStrsが含まれています。

dxdbtrD11を追加します。
dxdbtrD11には、暗黙のユニットdxdbtrel、dxlocate、dxtree、dxdbtreeが含まれています。

dxPSCoreD11を追加します。
dxPSCoreD11は暗黙ユニット(S)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は暗黙ユニット(S)nxseAutoComponent、nxseAllEngines、nxseRecordCompressionEngineSmart、nxseRecordEngineVariable、nxseFulltextEngineCursor、nxseFulltextEngineTable、nxseRefIntEngine、nxseJournalEngine、nxseSortEngineMerge、nxseTemporaryStorageChunked、nxseRecordEngineStatic、nxseIndicesEngineSimple、nxseIndexBase、nxseHeapEngineCached、nxseBlockHeapEngineNonfragmenting、nxseBlobEngineSimple、nxseIndexEngineStaticKeyBstarTree、nxseHeaderAccess、nxseEncryptionEngineBlowfishRC4、nxseBlobEngineSegmented、nxseAutoIncEngineSimple、nxseStreamEngineSimpleが含ま。

NexusDB207sr110を追加します。
NexusDB207sr110は暗黙ユニット(S)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、nxsrRecordCompressionEngine

NexusDB207sq110を追加します。
NexusDB207sq110には、暗黙のユニットnxsqlEngine、nxsqlFunctions、nxsqlDataDef、nxsqlFunctionOrganizer、nxsqlCondExp、nxsqlTableExp、nxsqlViews、nxsqlProxies、nxSQLParse、nxsqlPSM、nxsqlTest、CocoaBaseW、nxsqlBase、nxsqlDataManipが含まれています。

NexusDB207lg110を追加します。
NexusDB207lg110には、暗黙のユニットnxlgEventLogDispatcher、nxlgEventLogが含まれています。

NexusDB207dv110を追加します。
NexusDB207dv110には、暗黙のユニットnxServerManager、nxBaseServerComp、nxConfigSettingsが含まれています。

MPCommonLibD11を追加します。
MPCommonLibD11には、暗黙のユニットMPDataObject、MPCommonObjects、MPCommonUtilities、MPResources、MPShellTypes、MPThreadManager、MPShellUtilitiesが含まれています。

これについて奇妙なのは、台所の流し以外のほとんどすべてが含まれているという事実を除けば、言及されているパッケージの多くは、私がインストールしようとしているこのパッケージに含まれているコンポーネントにさえ関連していないということです。DataSnap、Indy、IBExpress、RemObjects Data Abstractなど-これらはいずれも、私のコンポーネントでは参照されていません。

これらの追加されたすべてのユニット/パッケージに対して[OK]をクリックすると、さらに混乱が生じ、コンパイルされません。

NexusDBフォルダー、および開発中のこれらのコンポーネントが存在するフォルダーはすべてライブラリパス上にあり、カスタムコンポーネントが最後にリストされています。

私は仮想マシンで作業しており、必要に応じてスナップショットを作成できますが、それでもこの問題を回避できないようです。コンパイラがどこで動作するかを十分に理解していないことは明らかです。問題の診断を探すため。私がそうするのを助けるかもしれない誰かが言及することができるものは何でも、大いに感謝されるでしょう。

4

2 に答える 2

9

原則として、これらのエラーは、パス上に互換性のない、またはより一般的には同じ BPL または DCP ファイルの複数のバージョンがある場合に発生します。システムですべての BPL と DCP を完全に検索し、それぞれのコピーが 1 つだけであることを確認します。

これらのタイプのエラーを追跡することは、お尻に大きな苦痛を与える可能性があります. :-/

于 2009-03-20T20:11:00.270 に答える