如何截获Delphi 2005的IDE中Compile菜单项发出的编译命令?Delphi2005慢得跟蜗牛一般,让人非常生气。我想有时小小的修改后,就直接脱离IDE使用cmd命令编译工程。 由于工程比较浩大,配置比较复杂(交叉编译,一个工程建立在另一个工程之上),我不想用dcc32慢慢的去添加各种参数路径,太麻烦了,我想截获IDE发出的完整的dcc32命令(带有各种参数,路径等等信息)。然后在控制台上直接运行它。我曾
1 这种想法可行吗?
2 如果可行,具体办法和步骤是什么?请不要打擦边球,讲一些命令行编译基础知识,或者在Helloworld情况下该如何如何——确实不需要——请正面回答问题,如不清楚我的意图,我们可以先讨论明白。先谢谢。

解决方案 »

  1.   

    我听说不象VC,Delphi IDE没有调用外界的EXE的来编译程序,而是内嵌的东西,也许放在了哪个DLL中吧(比如DCC70.DLL、DCC90.DLL)。
    所以啊,打死我你都截不到的。还是钻研dcc32吧。
      

  2.   

    谢谢AGUI,干脆利落的回答很痛快。我遵照你的意思,打开dcc70.dll看了一下,有76个具名函数,还有几个匿名的:DbEval32InitProc
    DccInitialize
    CompilerInit
    CompilerDone
    CompilerCompileUnit
    CompilerCompile
    CompilerGetUnit
    KibitzCompiler
    CompilerFindError
    ClearUnitCache
    ClearPackageCache
    UILoadUnit
    UIGetExplicitUnitImports
    UIDiscardUnit
    UIGetPackagesUsed
    UISetDebugDir
    CompilerShouldCompile
    Evaluate
    Modify
    EvalCondition
    GetCallCount
    GetCallPos
    GetCallHeader
    FindLineCode
    FindSourceLine
    GetSrcLines
    GetCodeRanges
    GetCodePosRanges
    InitProcess
    DoneProcess
    InitEvaluate
    DoneEvaluate
    FreeCompile
    LookupProc
    GetPropertyInfo
    GetNearestSymName
    GetFileCount
    GetFileName
    SetFileName
    GetFileIndex
    ClearAllStates
    ClearCompState
    NewCompState
    SetCompState
    BrowserFindSymbol
    BrowserFindSymSource
    BrowserGetSymbols
    BrowserGetOverloads
    BrowserGetSymbolFlags
    BrowserGetDefaultValue
    BrowserGetCallingConvention
    BrowserGetSymbolText
    BrowserGetTypeCode
    BrowserGetResultType
    BrowserGetTypeSymbol
    BrowserGetBaseType
    BrowserFindDeclaration
    BrowserGetReferences
    BrowserGetObjType
    BrowserGetAutoType
    BrowserGetAutoResultType
    BrowserGetDirectlyUsedUnits
    BrowserGetSymbolPath
    ___CPPdebugHook
    KibitzGetOverloads
    BuildPackages
    KibitzGetValidSymbols
    SaveCompState
    LoadCompState我再接着找官方文档证实这一推测。
      

  3.   

    用2005做什么东东,BLORLAND都不继续那玩意了
      

  4.   

    编译可以直接用dcc32 配置文件即可
      

  5.   

    我的一般做法:先自己写一个程序代替dcc32.exe,在程序中你可截获它的参数
      

  6.   

    Project*.cfg  
    应该就是 dcc32的编译参数
      

  7.   

    dcc32的参数可以就是你想编译的工程的工程文件,就是这么简单。工程文件包含了全部的参数设置。