DLLからファイルのタイムスタンプを取得しNo.01769
ぢぇい さん 01/02/08 20:40
 
ぢぇいと申します。

以前同じような質問をしましたが,
そのときには田楽サーバーやマクロサーバをご紹介いただきました。

それで特に問題はないのですが,
自分でも作ってみたくなり,とりあえずファイルの更新
日時を32bit*2で返すような関数をdllの形で作成しました。
ところが,その中で
hFile=CreateFile(FileName,GENERIC_READ,0,
NULL,OPEN_EXISTING,0,NULL);
とやってファイルを開こうとすると,
編集中のソースファイルは開くことができません。
使用中でないファイルではうまくいくことは確認済みです。
GetLastError()でエラーを取得すると
指定したパスが見つかりません。というエラーで開けていないこと
が分かりました。

使用中ファイルであることが理由なのでしょうが,
田楽サーバなどでは,実現されていることです。何か他に
うまい手があるのでしょうか?マクロとは直接関係ない質問で
すみませんが,よろしくお願いいたします。

[ ]
RE:01769 DLLからファイルのタイムスタンNo.01770
杉浦 まさき さん 01/02/08 23:59
 
ぢぇいさん、こんばんは。
田楽DLLの作者の杉浦です。

>田楽サーバなどでは,実現されていることです。何か他に
>うまい手があるのでしょうか?

うまい手かどうかはわかりませんが(^^;、
田楽鯖&DLLでは FindFirstFile で取得した
構造体から値を拾っています。
(OS内部で実際どうしているか知りませんが)
CreateFile でファイルをオープンしていないから
うまくいくんですかねぇ???


[ ]
RE:01770 DLLからファイルのタイムスタンNo.01771
ぢぇい さん 01/02/09 13:37
 
杉浦さんこんにちは。

>>田楽サーバなどでは,実現されていることです。何か他に
>>うまい手があるのでしょうか?
>うまい手かどうかはわかりませんが(^^;、
>田楽鯖&DLLでは FindFirstFile で取得した
>構造体から値を拾っています。
>(OS内部で実際どうしているか知りませんが)
>CreateFile でファイルをオープンしていないから
>うまくいくんですかねぇ???

ありがとうございます。
参考通り,書き換えてやってみたらうまくいきませんでした。
それで,もう一度よく調べてみたところタイプミスを発見して
しまいました。

どうもすみませんでした。そして,どうもありがとうございました。

さらに,CreateFile に戻してみたところ,当然のように
正しい動作をしてくれました。私の不注意でお手を
煩わせてしまいましたm(__)m

[ ]