以下の内容はhttps://pslabo.hatenablog.com/entry/2020/08/06/135451より取得しました。


DelphiのWindows API向けユニットからAPI名を抽出する

古いDelphiアプリケーションでWindows APIを直接実行している箇所を調べる必要が出てきたので、Windows API向けのユニットから function または procedure として宣言されている箇所をとりあえず抜き出してみることにした

ユニットファイルの場所

ここらへんにあります

C:\Program Files (x86)\Embarcadero\Studio\??.??\source\rtl\win

抽出方法

awk の下記スクリプトを、

#!/usr/bin/awk -f 

BEGIN {
    FS="[ \t(;:]"
}

$1 == "function" || $1 == "procedure" {
    apiname[$2]++
}

END {
    for (key in apiname) print key | "sort"
}

つぎのように実行すると、Windows API を含むリストが生成される

$./searchWinAPI.awk *.pas
ARGBToColorRef
AbortDoc
AbortPath
AbortPrinter
AbortSystemShutdown
AbortSystemShutdownA
AbortSystemShutdownW
AcceptEx
AccessCheck
AccessCheckAndAuditAlarm
AccessCheckAndAuditAlarmA
AccessCheckAndAuditAlarmW
AccessCheckByType
.
.
.

既存のプロジェクトに対して、このリストのキーワードが含まれるかどうかでAPIの利用状況を推測できるだろうと考えているところです。




以上の内容はhttps://pslabo.hatenablog.com/entry/2020/08/06/135451より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14