NTでINIファイルって...
■ このスレッドは過去ログ倉庫に格納されています
0001仕様書無しさん
NGNG使ってINIファイルを読み込むとき、
Windows9X系なら問題なく実行できるけど、
NTではワトソン博士が起動してアプリケーションエラーだって
起こられるのよ。どうしたら回避できるのな?
0002仕様書無しさん
NGNG9x系では出てこなかった潜在的バグで、バッファーが足りないとかなんじゃない?
0003仕様書無しさん
NGNG0004仕様書無しさん
NGNG出たことないよ?
環境を詳しく教えて。
00051
NGNGBASモジュールで「GetPrivateProfileString」をDeclareして、
Formモジュール内で利用するだけなんだよね。
ちなみに他のNTマシンで実行しても「エラー」って怒られて...。
98SEでは問題なく処理が通るんだ。
Microsoftのサポート情報で調べてもわからなかった。
よし、VBの再インストールしてみよっかな。
0006仕様書無しさん
NGNG00071
NGNGDim str As String * 255
「* 255」を値代入の変数宣言時に付加したら動きました!
GetProfile〜関数の5番目のnsizeにサイズを指定するだけ
では駄目なんですね。
どうもありがとうございます!
0008仕様書無しさん
NGNG>GetProfile〜関数の5番目のnsizeにサイズを指定するだけ
その指定したサイズと同じ長さの文字列を渡してやんないとダメ、ってことね。
ついでに、呼び出す前に文字列の初期化をしておくことをお勧めする。
0009仕様書無しさん
NGNG似たような質問なんで、此処に書かせていただきます
label1.forecolorをiniに保存して、次に読み込むとき、今一つ上手く行かないんです
何の関数でiniに書き込んで、何の関数でiniから読み込めば良いのでしょうか
宜しく御願いします
0011仕様書無しさん
NGNGforecolorはLong型の整数値で保存するんですね?
整数値はGetPrivateProfileInt()で取得できます。戻り値がそのまま
取得した値になります。関数名はIntですが戻り値はLongです。
0012仕様書無しさん
NGNGええ、書き込んで取得は出来るんです
書き込んだときに、「16777215」辺りの数字がiniにあるんですが、
これ、このままほり込むとエラーになってしまうんですよ
それで、質問した次第です
001311
NGNG>ええ、書き込んで取得は出来るんです
ってことは、GetPrivateProfileInt()関数で変数に取り込むまでは
出来ていて、
>これ、このままほり込むとエラーになってしまうんですよ
それをまたForecolorプロパティに代入するとエラーになる、という
ことですか?
それとも、変数を使わず、直接Forecolorプロパティを使って書込/
読込をしてるんですか?もうちょっと詳しく教えていただけませんか?
0014仕様書無しさん
NGNG>>ええ、書き込んで取得は出来るんです
>ってことは、GetPrivateProfileInt()関数で変数に取り込むまでは
>出来ていて、
>>これ、このままほり込むとエラーになってしまうんですよ
>それをまたForecolorプロパティに代入するとエラーになる、という
>ことですか?
そのとおりです
StrBuf = Format$r(lblTimer.ForeColor)
Ret = WritePrivateProfileString("Timer", "lblTimer_FontForeColor", StrBuf, IniPath)
StrBuf = Format$(lblTimer.BackColor)
Ret = WritePrivateProfileString("Timerr", "lblTimer_FontBackColor", StrBuf, IniPath)
でiniには16777215か、似たような数字が書き込まれます
それを
Ret = GetPrivateProfileString("Timerr", "lblTimer_ForeColor", "&H80000012", StrBuf, 100, IniPath)
lblTimer.ForeColor = StrBuf
Ret = GetPrivateProfileString("Timer", "lblTimer_BackColor", "&H8000000E", StrBuf, 100, IniPath)
lblTimer.BackColor = StrBuf
と
lblTimer.ForeColor = GetPrivateProfileInt("Timer", "lblTimer_ForeColor", &H80000012, IniPath)
lblTimer.BackColor = GetPrivateProfileInt("Timer", "lblTimer_BackColor", &H8000000E, IniPath)
の二種類で確かめて未たんですけど、それでも上手く行かないんです
00159
NGNGあと、「未たん」>「見たん」です
すいません
001611
NGNG僭越ながら添削させて頂きます。
まず、基本的なこと。
書き込むときと取得するときのキーの名称が違ってますよ。
Put〜関数ではlblTimer_FontForeColor
Get〜関数ではlblTimer_ForeColor
になってますね。これじゃ、いつになっても取得はできません(笑)
あと気づいたことですが、GetPrivateProfileString()のパターン。
取得した値は文字列型ですよね。それを直接Colorプロパティに代入しても、
Colorの値は整数値ですから「型が違います」エラーになって終わりです。
StrBufを整数値に変換しましょう。
頑張ってね。
00189
NGNGRet = GetPrivateProfileString("WatchMaker", "lblTimer_ForeColor", "&H80000012", StrBuf, 100, IniPath)
lblTimer.ForeColor = CLng(StrBuf)
Ret = GetPrivateProfileString("WatchMaker", "lblTimer_BackColor", "&H8000000E", StrBuf, 100, IniPath)
lblTimer.BackColor = CLng(StrBuf)
って事で解決しました
お世話をお掛けしました
0019仕様書無しさん
NGNG0020仕様書無しさん
NGNG0021仕様書無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています