見よう見まねで書いたのですが、iniファイルの読み込みがうまくいきませ。
Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Const SIZE = 250
Dim Ack[SIZE] As Byte
GetPrivateProfileString("drivers"+NULL, "wave"+NULL,"Nashi"+NULL, Ack, SIZE, "system.ini"+NULL)
FormatMessageで見ると、”アクセスが拒否されました”とでます。
なぜでしょうか?
iniファイルの読み込み
読み込み方に関してはよく分かりませんが、ダブルクォーツで囲った文字列の最後には自動でNULL文字が付くので、
GetPrivateProfileString("drivers", "wave","Nashi", Ack, SIZE, "system.ini")
で大丈夫だと思います。
そういえば、iniファイルを操作するクラスを誰かが作っていたような・・・?思い違いかな。
GetPrivateProfileString("drivers", "wave","Nashi", Ack, SIZE, "system.ini")
で大丈夫だと思います。
そういえば、iniファイルを操作するクラスを誰かが作っていたような・・・?思い違いかな。
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
Re: iniファイルの読み込み
> GetPrivateProfileString("drivers"+NULL, "wave"+NULL,"Nashi"+NULL, Ack, SIZE, "system.ini"+NULL)
NULLは要りません。
読み込むことはできますけどね。
NULLは要りません。
[ここをクリックすると内容が表示されます]
WritePrivateProfileString()関数でなんか失敗するなぁ...と思ったらどうやら system.ini っていうINIファイルは作れないようです?。コード: 全て選択
Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (
ByVal lpAppName As LPCSTR,
ByVal lpKeyName As LPCSTR,
ByVal lpDefault As LPCSTR,
ByVal lpReturnedString As LPSTR,
ByVal nSize As DWord,
ByVal lpFileName As LPCSTR) As DWord
Const SIZE = 250
Dim Ack[SIZE] As Byte
GetPrivateProfileString("drivers","wave","Nashi",Ack,SIZE,"system.ini")
OutputDebugString(Ack)
読み込むことはできますけどね。
Re: iniファイルの読み込み
konisi様、7様
NULLは、取ったり付けたりしながら試しました。
7様のサンプルの様にStringをLPSTRにしたらAPIは反応しました。
しかし、system.iniには、下記の記載が有るのにNasiが帰って来ます。
[drivers]
wave=mmdrv.dll
system.iniをプロジェクトが有るフォルダーにコピーしても同様です。
何故でしょう??
もう1つ教えて下さい。
LPSTRって、ABのHelpに掲載されていない型です。
Helpに無い形式は何から情報を得るのですか??
よろしくお願いします。
NULLは、取ったり付けたりしながら試しました。
7様のサンプルの様にStringをLPSTRにしたらAPIは反応しました。
しかし、system.iniには、下記の記載が有るのにNasiが帰って来ます。
[drivers]
wave=mmdrv.dll
system.iniをプロジェクトが有るフォルダーにコピーしても同様です。
何故でしょう??
もう1つ教えて下さい。
LPSTRって、ABのHelpに掲載されていない型です。
Helpに無い形式は何から情報を得るのですか??
よろしくお願いします。
Re: iniファイルの読み込み
> しかし、system.iniには、下記の記載が有るのにNasiが帰って来ます。
iniファイルを本来使用するファイルに変更したら取れました。
お騒がせいたしました。
原因は?ですが、Windowsをいじくるつもりは無いので、大丈夫です。
> もう1つ教えて下さい。
> LPSTRって、ABのHelpに掲載されていない型です。
> Helpに無い形式は何から情報を得るのですか??
こちらは、引き続き情報募集中です。
宜しくお願いします。
iniファイルを本来使用するファイルに変更したら取れました。
お騒がせいたしました。
原因は?ですが、Windowsをいじくるつもりは無いので、大丈夫です。
> もう1つ教えて下さい。
> LPSTRって、ABのHelpに掲載されていない型です。
> Helpに無い形式は何から情報を得るのですか??
こちらは、引き続き情報募集中です。
宜しくお願いします。
Re: iniファイルの読み込み
> LPSTRって、ABのHelpに掲載されていない型です。
> Helpに無い形式は何から情報を得るのですか??
ActiveBasicをインストールしたフォルダの中の Include\windows.sbp で定義されています。
そういうのを覗いて調べるとか、自分の場合は文字列検索アプリケーション(Grep検索?って言うのかな?)でActiveBasicのIncludeフォルダの中の全てのファイルに対して「LPSTR」って検索したら発見したという。
ちなみにABHelperにはLPSTRの解説を載せています。宣伝。
自分の場合、LPSTRは文字列バッファ、LPCSTRは文字列リテラルと考えてしまっているんですけど、これを書き分けると文字列バッファを指定すべきなのか、文字列リテラルを指定してもいいのか、すぐに分かって便利です。
> Helpに無い形式は何から情報を得るのですか??
ActiveBasicをインストールしたフォルダの中の Include\windows.sbp で定義されています。
そういうのを覗いて調べるとか、自分の場合は文字列検索アプリケーション(Grep検索?って言うのかな?)でActiveBasicのIncludeフォルダの中の全てのファイルに対して「LPSTR」って検索したら発見したという。
ちなみにABHelperにはLPSTRの解説を載せています。宣伝。
自分の場合、LPSTRは文字列バッファ、LPCSTRは文字列リテラルと考えてしまっているんですけど、これを書き分けると文字列バッファを指定すべきなのか、文字列リテラルを指定してもいいのか、すぐに分かって便利です。