[リストへもどる]
一 括 講 読

投稿時間:05/03/05(Sat) 01:00
投稿者名:oo
URL :
タイトル:INIファイルの読み取り
Cは中の上くらいですが、Win32プログラミングは初心者です。
プラグインDLLと同一フォルダにあるINIファイルを読みたいのですが、パスを知るのはどうするのが良いのでしょうか?
今はとりあえずパス決めうちで書いてます。

ちなみに、Becky!起動時と終了時に、登録したプログラムを実行するプラグインを書いてます。

投稿時間:05/03/07(Mon) 17:25
投稿者名:マオ(管理人)
URL :http://mao.udn.ne.jp/b2pin/
タイトル:Re: INIファイルの読み取り
> Cは中の上くらいですが、Win32プログラミングは初心者です。
> プラグインDLLと同一フォルダにあるINIファイルを読みたいのですが、パスを知るのはどうするのが良いのでしょうか?

簡単に書きますと、

char ini_path[MAX_PATH];
MEMORY_BASIC_INFORMATION mbi;
const static void *dummy;
::VirtualQuery (&dummy, &mbi, sizeof mbi);
::GetModuleFileName ((HINSTANCE)mbi.AllocationBase, ini_path, sizeof ini_path);
strcpy (strrchr (ini_path, '.') + 1, "ini");

んな感じですかね。
もっと、セキュアなコードで仕上げてくださいね。

投稿時間:05/03/07(Mon) 21:25
投稿者名:oo
URL :
タイトル:Re^2: INIファイルの読み取り
> 簡単に書きますと、
>
> char ini_path[MAX_PATH];
> MEMORY_BASIC_INFORMATION mbi;
> const static void *dummy;
> ::VirtualQuery (&dummy, &mbi, sizeof mbi);
> ::GetModuleFileName ((HINSTANCE)mbi.AllocationBase, ini_path, sizeof ini_path);
> strcpy (strrchr (ini_path, '.') + 1, "ini");
>
> んな感じですかね。

ありがとうございます。上手くいきました。

検索して、GetModuleFileNameかなと、
GetModuleFileName (NULL, ini_path, sizeof ini_path)
をやってみたんですが、B2.exeのパスが得られたので、諦めてました。

> もっと、セキュアなコードで仕上げてくださいね。
うーん。外部から入力する部分が無いので十分な気がするのですが。

投稿時間:05/03/07(Mon) 23:38
投稿者名:さんぽ
URL :
タイトル:Re^3: INIファイルの読み取り
Delphiの場合ですが、szIniという定数に格納されています。
C++版でも同様ではないでしょうか。

投稿時間:05/03/08(Tue) 00:12
投稿者名:oo
URL :
タイトル:Re^4: INIファイルの読み取り
> Delphiの場合ですが、szIniという定数に格納されています。
> C++版でも同様ではないでしょうか。

ありがとうございます!! template.cpp の19行目にありました。
せっかく管理人さんに教えていただきましたが、こっちを使います。
APIに無いかは調べたんですが、まさかソースにあるとは。
よくソースを読めばよかった。orz



- Web Forum -