この QC レポートによると、Delphi はファイル共有モードFILE_SHARE_DELETEをサポートしていません。
http://qc.embarcadero.com/wc/qcmain.aspx?d=45628
このモードを TFileStreams で使用する必要があります。ライブラリ コードを変更したり、ライブラリから一連のものを複製したりしない簡単な回避策を考えられる人はいますか?
この QC レポートによると、Delphi はファイル共有モードFILE_SHARE_DELETEをサポートしていません。
http://qc.embarcadero.com/wc/qcmain.aspx?d=45628
このモードを TFileStreams で使用する必要があります。ライブラリ コードを変更したり、ライブラリから一連のものを複製したりしない簡単な回避策を考えられる人はいますか?
QCレポートは正しいです。 TFileStream
(より具体的には、SysUtils.FileOpen()
関数)はをサポートしていませんFILE_SHARE_DELETE
。とのみをサポートFILE_SHARE_READ
しFILE_SHARE_WRITE
ます。
TFileStream
ネイティブでサポートされている以上の共有権限を使用するには、Win32 APICreateFile()
関数を直接呼び出す必要があります。次に、返さTHandleStream
れるハンドルを使用してオブジェクトを作成できCreateFile()
ます。