- PR -

iniファイル読込でエラー

投稿者投稿内容
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-03-29 21:26
引用:

NowhereManさんの書き込み (2004-03-29 17:19) より:
VS.NET 2002のヘルプでは、「既定値は Shared」
VS.NET 2003のヘルプでは、「既定値は Lock Read Write」
となっているようです。



 情報ありがとうございます。

 I/Fを変更するか>MS いや、いつものことだった。。。


 ん?VS.NET2002を使っているのに、Framework Ver.1.1で動作している?


↓↓よねKENさん↓↓
 実験ありがとうございます。ドキュメント不備…それは痛い。。。

[ メッセージ編集済み 編集者: Jitta 編集日時 2004-03-30 08:29 ]
よねKEN
ぬし
会議室デビュー日: 2003/08/23
投稿数: 472
投稿日時: 2004-03-30 01:13
引用:

Jittaさんの書き込み (2004-03-29 21:26) より:
引用:

NowhereManさんの書き込み (2004-03-29 17:19) より:
VS.NET 2002のヘルプでは、「既定値は Shared」
VS.NET 2003のヘルプでは、「既定値は Lock Read Write」
となっているようです。



 情報ありがとうございます。

 I/Fを変更するか>MS いや、いつものことだった。。。



いや、さすがにI/Fを安易に変えることはないでしょう。
おそらくはドキュメントの不備・・・ということで実験してみました。
以下、抜粋。

コード:

Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles button1.Click
FileOpen(1, "C:\TEST.txt", OpenMode.Input)
End Sub

Private Sub button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles button2.Click
FileClose(1)
End Sub



.NET Framework 1.0 SDKのvbc.exeでコンパイルして実験しましたが、
button1をクリックしてから、メモ帳でこのファイルを開くと
他のプロセスにロックされている、と怒られました。
button2をクリックしてこのファイルを閉じてからであれば、メモ帳で普通に開けました。

ということで、ドキュメントの不備ということで。
(元のドキュメントの不備か、日本語版だけの不備かはちょっとわかりませんが)


[ メッセージ編集済み 編集者: よねKEN 編集日時 2004-03-30 01:21 ]
ぼると
常連さん
会議室デビュー日: 2003/04/09
投稿数: 42
投稿日時: 2004-03-30 11:19
引用:
.NET Framework 1.0 SDKのvbc.exeでコンパイルして実験しましたが、
button1をクリックしてから、メモ帳でこのファイルを開くと
他のプロセスにロックされている、と怒られました。
button2をクリックしてこのファイルを閉じてからであれば、メモ帳で普通に開けました。

ということで、ドキュメントの不備ということで。
(元のドキュメントの不備か、日本語版だけの不備かはちょっとわかりませんが)


とかかれていますが、1.0上で動作させた結果なんでしょうか?

・・・というか、1.0でビルドして1.1で動作させてた場合、どちらの動作になるんでしょうか?
よねKEN
ぬし
会議室デビュー日: 2003/08/23
投稿数: 472
投稿日時: 2004-03-30 12:10
引用:

ぼるとさんの書き込み (2004-03-30 11:19) より:
引用:
.NET Framework 1.0 SDKのvbc.exeでコンパイルして実験しましたが、
button1をクリックしてから、メモ帳でこのファイルを開くと
他のプロセスにロックされている、と怒られました。
button2をクリックしてこのファイルを閉じてからであれば、メモ帳で普通に開けました。

ということで、ドキュメントの不備ということで。
(元のドキュメントの不備か、日本語版だけの不備かはちょっとわかりませんが)


とかかれていますが、1.0上で動作させた結果なんでしょうか?

・・・というか、1.0でビルドして1.1で動作させてた場合、どちらの動作になるんでしょうか?



1.0で間違いなく動いた!という確認はしてません(汗)が、
理論上は1.0上での動作のはずです。

.NET Framework SDK 1.0付属のvbcでコンパイルし、
作成されたEXEを普通に起動しました。

.NET Framework 1.0でコンパイルしたEXEは原則として
.NET Framework 1.0上として動作するはずです。
(1.1が入っていても勝手に1.1で実行されることはありません)
Configファイルで指定すれば1.1上で動かすことはできますが。

Configファイルで1.1のランタイムの使用を指定すれば、
1.1としての動作になると思います。


[ メッセージ編集済み 編集者: よねKEN 編集日時 2004-03-30 12:12 ]
ぼると
常連さん
会議室デビュー日: 2003/04/09
投稿数: 42
投稿日時: 2004-03-30 13:15
失礼しました。
下記のコードで確認してみましたが、確かにビルドしたバージョンで動作してますね。

コード:
public class test
{
    public static void Main()
    {
        System.Console.WriteLine(System.Environment.Version.ToString());
    }
}



Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-03-30 13:22
引用:

ぼるとさんの書き込み (2004-03-30 11:19) より:

・・・というか、1.0でビルドして1.1で動作させてた場合、どちらの動作になるんでしょうか?


 DLL Hellを避ける一つの工夫として、.NET Frameworkでは、GACに登録されたDLLはすべてバージョンごとに別のディレクトリ(ディレクトリ、というのは語弊があるのかな?)にしまわれ、それぞれのバージョンを参照します。

 自作のコンポーネントでも、厳密名をつけてGACで管理できるようにすれば、「このバージョン以降を使う」などの設定ができるようになるようです。
ぼると
常連さん
会議室デビュー日: 2003/04/09
投稿数: 42
投稿日時: 2004-03-30 14:09
引用:

 DLL Hellを避ける一つの工夫として、.NET Frameworkでは、GACに登録されたDLLはすべてバージョンごとに別のディレクトリ(ディレクトリ、というのは語弊があるのかな?)にしまわれ、それぞれのバージョンを参照します。


これは知っていましたが、VB.NETでパラメータを省略した場合、アセンブリ作成時に既定値が設定されるのか実行時に既定値が設定されるのか疑問だったのです。

引用:

 自作のコンポーネントでも、厳密名をつけてGACで管理できるようにすれば、「このバージョン以降を使う」などの設定ができるようになるようです。


これは知りませんでした。
情報ありがとうございます。

[ メッセージ編集済み 編集者: ぼると 編集日時 2004-03-30 14:12 ]
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-03-30 14:13
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpcontargetingnetframeworkversion.asp

ここに
NET Framework Version 1.0 で作成されたアプリケーションは、既定では、自動的に .NET Framework Version 1.1 で実行されます。
って書いてあるんですけど。本当のところはどうなんですか?

少なくとも同じマシンにフレームワーク1.0と1.1を入れて、VisualStudio2002で(別マシンで)コンパイルしていたASP.NETのプログラムは1.1上で動作しました。
ASP.NETプログラムはaspnet_regiisで設定する必要があるそうで、実際そのようにしましたが、ASP.NETでないプログラムはどうなるんでしょうね。

[ メッセージ編集済み 編集者: 一郎 編集日時 2004-03-30 14:18 ]

スキルアップ/キャリアアップ(JOB@IT)