■ 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不使用で実現させる方法はありませんか?
アドバイスをお願いします。
>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ファイルは所詮テキストファイル。
普通に読み込んで必要な文字列を抽出したほうが早いと思います。
MFCは使わないということですよね。
そうなるとMFCの一部であるCWinAppは使えません。
Win32APIを直接呼び出しましょう。
GetPrivateProfileString,WritePrivateProfileString
GetPrivateProfileInt,WritePrivateProfileInt
あたりが使えるのではないかと思います。
お世話になります。
つまり、今の環境でiniを読むには Win32APIを使うしかない訳ですね。
この Win32API ですが、実はよく知らないんです。
VC++ 等の開発環境とは別に用意されているものなんでしょうか?
今の私の環境で、その Win32API の GetPrivateProfileString は
使用する事ができますか?それとも、どこかから何かをダウンロード
する必要があるのでしょうか?
よろしくお願いします。
質問の内容変更します。
あれから色々とイジッているうちに、GetPrivateProfileString というのが見つかりました。
winbase.h とかいうファイルにありました。どうもすいませんでした。
ところで、私はこういう関数群(API)の事を名前ぐらいしか知らなかったのですが、
使い方とか、引数の型などはどちらでお知りになったんでしょうか?
>使い方とか、引数の型などはどちらでお知りになったんでしょうか?
VSのHELPで参照できますよ
「プラットホームSDK」です