はじめまして。バーシュンと申します。
現在VC++6.0とVB6.0にてWindows用の常駐プログラムを作成したのですが、
VB6.0で作成したDLLでファイルに書き込みしたのですが、
書き込みが反映されていません。
EXEにすると問題なく書き込みが行われています。
DLLだとファイルへの書き込みは出来ないのでしょうか?
Google等で調べもしたのですがなかなか必要な情報が得られないため、
何方かご教授願えませんでしょうか?
追記。
一応ファイルの作成は出来てはいるので
FileSystemObject自体がDLLで動かないというわけではないようです。
よろしくお願いします><
> 書き込みが反映されていません。
> EXEにすると問題なく書き込みが行われています。
(Vista の)VirtualStore へのリダイレクトに引っ掛かっているとか、
(dcomcnfg.exe の) オブジェクト権限不足の可能性であるとか、
(NTFS やネットワークの)ファイルアクセス権限なども考えましたが、
exe だと OK というのであれば、別の原因かもしれませんね。
・エラーは出ていませんか? (On Error で握りつぶしている可能性も含めて)
・出力対象のファイルは、フルパスで指定していますか?
(相対パス指定だと、カレント ディレクトリの影響を受けてしまうので)
ああああああ すいません勘違いですFileSystemObjectじゃないです。
すいません。
Open FileName For Output as FileNo でした・・・
> 一応ファイルの作成は出来てはいるので
作成できたけれど、書き込みが完了していない、ということでしょうか。
もしかして、使用しているのは FileSystemObject オブジェクトでは無く、
TextStream オブジェクトだったりしますか?
もし、TextStream の事だとしたら、最後に Close メソッドを
呼び出しているかどうかをチェックしてみてください。
> FileSystemObjectじゃないです。
ありゃ。(^^;
実は、Print # (または Write #)の処理を通っていなかった…という事は無いですよね?
魔界の仮面弁士さん
早速お返事いただきありがとうございますm(_ _)m
もう一度EXEにもどして行ってデバッグを行ってみたのですが
print処理も通っていますし、
close処理も行っています。
もう一度Googleで検索もしてみます><
> もう一度EXEにもどして行ってデバッグを行ってみたのですが
EXE に戻さず、DLL のままデバッグ実行させた場合はどうなりますか?
魔界の仮面弁士さん
DLLのデバッグの仕方を色々と調べてみたあとに
DLLのデバッグを行ってみたのですが普通に処理を通っているようでして
不思議です・・・
とりあえずいろいろとさらに調べてみます
ありがとうございますm(_ _)m