ActiveXDLLにてFileSystemObjectを使用してもファイルに書き込みできない


バーシュン  2008-01-17 17:05:59  No: 100083  IP: 192.*.*.*

はじめまして。バーシュンと申します。

現在VC++6.0とVB6.0にてWindows用の常駐プログラムを作成したのですが、
VB6.0で作成したDLLでファイルに書き込みしたのですが、
書き込みが反映されていません。

EXEにすると問題なく書き込みが行われています。

DLLだとファイルへの書き込みは出来ないのでしょうか?
Google等で調べもしたのですがなかなか必要な情報が得られないため、
何方かご教授願えませんでしょうか?

編集 削除
バーシュン  2008-01-17 17:08:32  No: 100084  IP: 192.*.*.*

追記。

一応ファイルの作成は出来てはいるので
FileSystemObject自体がDLLで動かないというわけではないようです。

よろしくお願いします><

編集 削除
魔界の仮面弁士  2008-01-17 17:14:13  No: 100085  IP: 192.*.*.*

> 書き込みが反映されていません。
> EXEにすると問題なく書き込みが行われています。
(Vista の)VirtualStore へのリダイレクトに引っ掛かっているとか、
(dcomcnfg.exe の) オブジェクト権限不足の可能性であるとか、
(NTFS やネットワークの)ファイルアクセス権限なども考えましたが、
exe だと OK というのであれば、別の原因かもしれませんね。


・エラーは出ていませんか? (On Error で握りつぶしている可能性も含めて)

・出力対象のファイルは、フルパスで指定していますか?
  (相対パス指定だと、カレント ディレクトリの影響を受けてしまうので)

編集 削除
バーシュン  2008-01-17 17:14:26  No: 100086  IP: 192.*.*.*

ああああああ  すいません勘違いですFileSystemObjectじゃないです。
すいません。

Open FileName For Output as FileNo でした・・・

編集 削除
魔界の仮面弁士  2008-01-17 17:18:31  No: 100087  IP: 192.*.*.*

> 一応ファイルの作成は出来てはいるので
作成できたけれど、書き込みが完了していない、ということでしょうか。

もしかして、使用しているのは FileSystemObject オブジェクトでは無く、
TextStream オブジェクトだったりしますか?
もし、TextStream の事だとしたら、最後に Close メソッドを
呼び出しているかどうかをチェックしてみてください。

編集 削除
魔界の仮面弁士  2008-01-17 17:21:18  No: 100088  IP: 192.*.*.*

> FileSystemObjectじゃないです。
ありゃ。(^^;

実は、Print # (または Write #)の処理を通っていなかった…という事は無いですよね?

編集 削除
バーシュン  2008-01-17 17:28:48  No: 100089  IP: 192.*.*.*

魔界の仮面弁士さん
早速お返事いただきありがとうございますm(_ _)m

もう一度EXEにもどして行ってデバッグを行ってみたのですが
print処理も通っていますし、
close処理も行っています。

もう一度Googleで検索もしてみます><

編集 削除
魔界の仮面弁士  2008-01-17 18:36:36  No: 100090  IP: 192.*.*.*

> もう一度EXEにもどして行ってデバッグを行ってみたのですが

EXE に戻さず、DLL のままデバッグ実行させた場合はどうなりますか?

編集 削除
バーシュン  2008-01-18 16:52:14  No: 100091  IP: 192.*.*.*

魔界の仮面弁士さん

DLLのデバッグの仕方を色々と調べてみたあとに
DLLのデバッグを行ってみたのですが普通に処理を通っているようでして
不思議です・・・

とりあえずいろいろとさらに調べてみます
ありがとうございますm(_ _)m

編集 削除