MFC不使用で、iniファイルの文字列を読込みたいのですが・・・。

[戻る]
takeshi 2002/10/04(金) 20:54:28
■ WindowsNT 4.0
■ Microsoft Visual C++ 5.0
■ MFC不使用

● 目的:任意のiniファイルの文字列を、char型配列に読み込みたい。
● やった事:Microsoft MSDN ライブラリでのMFC調査、Webでのトピック検索
● 言語知識レベルは 初級 〜 中級ぐらいです。開発経験は3年。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

  VC++でDLLを作成しています。任意のiniファイルから文字列を読み込みたいのですが、

CWinApp::GetProfileString と、CWinApp::m_pszProfileName を使えば

できそうだと思っているのですが、うまく実現できません。

CWinApp::m_pszProfileName を変更する場所である、

InitInstance() が私の作成しているDLLにありません。

この関数は MFC を使わないと生成されないものなのでしょうか?

MFC不使用で実現させる方法はありませんか?

アドバイスをお願いします。

暇人 2002/10/04(金) 21:34:50
>InitInstance() が私の作成しているDLLにありません。
>この関数は MFC を使わないと生成されないものなのでしょうか?
MFCを使ったとしてもDLLにはありません。

CWinApp::m_pszProfileName はEXEの持ち物なので
DLLが勝手に変えることは感心できませんが、DLLの種類によっては変更できます。
InitInstance() 以外でもSetRegistryKeyは使えますから。

#だけど「MFC不使用」ですよね?なのに「MSDN ライブラリでのMFC調査」?
#GetProfileStringは静的関数ではないのでCWinApp::GetProfileString(・・・
#と書いてもだめですよ。

>MFC不使用で実現させる方法はありませんか?
MSDNのプラットフォームSDK(日本語)・ベースサービスに
レジストリのリファレンスがあります。

#iniファイルの歴史とMFCの歴史、どっちが長いのでしょう?

.iniファイルは所詮テキストファイル。
普通に読み込んで必要な文字列を抽出したほうが早いと思います。

MASATO [E-Mail] [HomePage] 2002/10/05(土) 00:24:45
MFCは使わないということですよね。

そうなるとMFCの一部であるCWinAppは使えません。
Win32APIを直接呼び出しましょう。

GetPrivateProfileString,WritePrivateProfileString
GetPrivateProfileInt,WritePrivateProfileInt

あたりが使えるのではないかと思います。

Takeshi 2002/10/07(月) 10:45:07
  お世話になります。

つまり、今の環境でiniを読むには Win32APIを使うしかない訳ですね。

この Win32API ですが、実はよく知らないんです。

VC++ 等の開発環境とは別に用意されているものなんでしょうか?

今の私の環境で、その Win32API の GetPrivateProfileString は

使用する事ができますか?それとも、どこかから何かをダウンロード

する必要があるのでしょうか?

よろしくお願いします。

Takeshi 2002/10/07(月) 11:46:15
[[解決]]
  質問の内容変更します。

あれから色々とイジッているうちに、GetPrivateProfileString というのが見つかりました。

winbase.h とかいうファイルにありました。どうもすいませんでした。

ところで、私はこういう関数群(API)の事を名前ぐらいしか知らなかったのですが、

使い方とか、引数の型などはどちらでお知りになったんでしょうか?

アイススケーター 2002/10/07(月) 12:32:30
>使い方とか、引数の型などはどちらでお知りになったんでしょうか?

VSのHELPで参照できますよ

PAI 2002/10/07(月) 13:30:32
「プラットホームSDK」です

古いスレッドには追加発言できません。