iniファイルをexeファイルと同じディレクトリに作成する方法

このQ&Aのポイント
  • Windowsでiniファイルをexeファイルと同じディレクトリに作成する方法を教えてください。
  • MFCアプリで設定ファイルを作成したいのですが、参考ページの通りやっているつもりですがiniファイルが作成されません。
  • WriteProfile系の関数でレジストリへの読み書きは確認していますが、解決できません。
回答を見る
  • ベストアンサー

iniファイルをexeファイルと同じディレクトリに作成する方法を教えてください。

http://www.ne.jp/asahi/hishidama/home/tech/vcpp/ini60.htmlを参考にMFCアプリで設定ファイルを作成したいのですが、参考ページの通りやっているつもりですがiniファイルが作成されません。 BOOL CTTest2App::InitInstance()の上に先ページの static void InitIniName(LPCTSTR &pszProfileName)をコピペし 上記のInitInstance()の中でAfxEnableControlContainer();の上にInitIniName(m_pszProfileName)関数を記述しました。 iniファイルが出来ません。他のページも参考にいろいろ試したつもりですが、解決しません。WriteProfile系の関数でレジストリへの読み書きは確認しています。 環境:WinXP Pro Visual Studio 2005 Academic Edition

  • kon_t
  • お礼率51% (17/33)

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

>WriteProfile系の関数でレジストリへの読み書きは確認しています。 レジストリに読み書きしてる場合は、iniファイルは読み書き出来ません。 「レジストリへの読み書き」と「iniファイルへの読み書き」は「インスタンスの初期化時にどっちを使うか決め、読み書きは同じ関数を使う」ようになってます。 なので「レジストリへ読み書きしている場合は、iniファイルへ読み書き出来ない」ですし「iniファイルへ読み書きしている場合は、レジストリへ読み書き出来ない」です。 レジストリへの読み書きをさせず、iniファイルに読み書きする場合は、InitInstanceの中の「SetRegistryKey(_T("~~~~"));」の行をコメントアウト(削除)して下さい。 「SetRegistryKey()」があると「有無を言わさずレジストリから読み書き」してしまい、iniファイルは作られませんし、iniファイルは読み書き出来ません。 http://www.hiramine.com/programming/windows/inifilewriteget.html

kon_t
質問者

お礼

解決しました!! よくよく考えると結構恥ずかしいミスですねこれは。 冷静なご回答ありがとうございました。

関連するQ&A

  • iniファイルのパス取得m_pszProfileNameについて

    InitInstanceで、m_pszProfileNameを変更していますが、 別の関数(InitTest)を用意し、そこでパス変更をしようと思っています。 追加関数のif (m_pszProfileName) {のところで、 不適切なptrとなってしまいます。 ifの中に入っていきません。 現行のソース BOOL CXXXApp::InitInstance() { if (m_pszProfileName) { free(m_pszProfileName); } m_pszProfileName = _tcsdup(iniPath); : : パスの変更に失敗した時 return FALSE; : return TRUE; } 追加関数 BOOL CXXXApp::InitTest() { if (m_pszProfileName) { ←ここがTRUEにならず、不適切なptr free(m_pszProfileName); } m_pszProfileName = _tcsdup(iniPath); : : パスの変更に失敗した時 return FALSE; : return TRUE; } 変更後は、オーバーライドしたInitInstanceでは、 何も処理を行わず、そのままTRUEをreturnさせます。 追加関数で、m_pszProfileNameが初期化できていないのでしょうか? どうすれば、追加関数で、iniファイルのパス変更ができるか教えてください。 iniファイルは、exeと同じフォルダに設置します。

  • ASPでiniファイルの読み書きを行う

    ASPでiniファイルの読み書きを行いたいと思っています。 なるべくならVBScriptを使用してやってみたいのですが、 それは可能でしょうか。 ただのテキストファイルとしてみるならできそうなのですが、 専用の関数などがありましたらどなたか教えていただけないでしょうか。 よろしくお願いします。

  • auの着うたフルの作成で・・・

    個人で聞く着うたフルの作成で、分からないことがあります。 下記アドレスのサイトの中に、Transcoding.iniをダウンロードしろと言うことが書かれていますが、Transcoding.iniのダウンロードってテキストファイルみたいなファイルをコピーすればいいんですか? もし違うのであれば、ダウンロードの方法を教えてください。 作り方の参考にしているページと、リンクをたどって行き着いたTranscoding.iniのページのアドレスを記載しておきますので、よろしくお願いします。 (1)作り方のページ・・・http://jif.s60.xrea.com/uta/ (2)Transcoding.iniのページ・・・http://www4.pf-x.net/~osusume/Transcoding.ini

  • iniファイルのデータ結合に関するフローチャートについて

    こんにちわdio-dioです。 今回もお助けください。 質問の内容ですが、 VC++のMFCを用いて2つのiniファイルのデータを比較し照合して 新規のファイルを作成するプログラムを組みたいと思っております。 プログラム実行例ですが、一例はこうです <iniファイル(更新用)> 【テレビ】 朝=めざまし 昼=いいとも 夜=SMAP×SMAP <iniファイル(マスタ用)> 【テレビ】 朝=朝ズバ! 昼=いいとも 夜=めちゃイケ 深夜=くりぃむナントカ 【芸人】 司会者=タモリ 【芸能人】 男性=オダギリジョー 女性=伊東美咲 <iniファイル(新規)> 【テレビ】 朝=めざまし 昼=いいとも 夜=SMAP×SMAP 深夜=くりぃむナントカ 【芸人】 司会者=タモリ 【芸能人】 男性=オダギリジョー 女性=伊東美咲 となります。 そのためにまずはフローチャートを作成することに成りました。 そのフローチャートの書き方がよく分かりません。 今までフローチャートは書いたことはありますが、 今回はiniファイル専用のAPI関数があったりと今まで私が 経験したものよりも複雑で混乱しています。 どなたか知恵をお貸しいただけないでしょうか? シンプルに考えればいいとまわりからも言われているのですが、 性格上の問題でしょうか・・・うまくいきません。 簡単なことだよ!と対応できる方よろしくお願いいたします。

  • pgsql.ini のファイルは何所にありますか。

    FedoraCore4にPostgresql7.4.6をソースからコンパイルしてインストールしました。 学習書に、 PHPインストール時に configureオプション  --with-config-file-scan-dir-DIR で指定したディレクトリにpgsql.ini をおく、と書いてあるのですが、私の場合、yumでPHP5.04 をインストールしています。 /usr/local/pgsql/の下に、bin,doc,include,lib,man,shareの各サブディレクトリはあります。 /etc/php.d ディレクトリはありますが、中は空です。pgsql.ini ファイルを見つけることが出来ません。 1.pgsql.ini ファイルは何所にあるのでしょうか? 2.新規に作成する必要があるのでしょうか? ググリましたが、適当な資料を探し得ませんでした。 pgsql.ini の編集と置き場について、良い参考資料を教えて頂ければ大変有難いです。

  • DLL作成時、defファイルを使いたくない

    また質問させて下さい。 Visual Studio2005でDLLを使ったプログラムを作ろうとしています。 defファイルを利用すると、そのDLLファイルを作成できるのですが、 __declspec(dllexport)を利用すると、DLLファイルのその関数を読めなくなってしまいます。 なぜでしょうか? 下記は、MFCで、dll_test7というプロジェクトを作り、そのdll_test7.hのコードのすぐ下に その関数を書きました。(これがダメだと思うのですが…) //●Visual Studioのプロジェクト作成で、生成される部分 // dll_test7.h : dll_test7.DLL のメイン ヘッダー ファイル // #pragma once __declspec(dllexport) void __cdecl test0(void); #ifndef __AFXWIN_H__ #error "PCH に対してこのファイルをインクルードする前に 'stdafx.h' をインクルードしてください" #endif #include "resource.h" // メイン シンボル // Cdll_test7App // このクラスの実装に関しては dll_test7.cpp を参照してください。 // class Cdll_test7App : public CWinApp { public: Cdll_test7App(); // オーバーライド public: virtual BOOL InitInstance(); DECLARE_MESSAGE_MAP() }; //■作成した関数 __declspec(dllexport) void __cdecl test0(void) { CString cs; cs="aa"; ::AfxMessageBox(cs); } 上記は、defファイルを利用するとこの関数を呼び出せます。 以上、どうぞよろしくお願い致します。

  • INIファイルのように、ソフト側で読み書きし、かつ、Configを直接編集可能にするには?

    VB2005を使ってアプリを作成しています。 Configファイルを使って、INIファイルのようにする方法がわかりません。 アプリ側からConfigファイルを読み書きできるようにし、 なおかつ、直接Configファイルを開いても編集できるようにしたいのです。 自分が認識しているConfigファイルの動作が、 スコープをアプリケーションにすると、アプリ側で書き込むことができない。 スコープをユーザーにすると、アプリ側で書き込めるが、ConfigファイルがEXEと違う場所にできてしまう。 Configファイルを直接編集でき、かつアプリ側からも編集でき、 EXEと同じ場所にConfigファイルを置くことってできないのでしょうか? どうぞ、ご教授よろしくお願いしますm(_ _)m

  • ファイルが作成された日時

    ファイルが作成されてからある一定時間で削除するプログラムを作っています。あまり厳密なものではなく、あるページにアクセスがあったタイミングで所定の時間を超えているファイルは削除するような仕組みです。 そんな関数あるのかと思って調べてみましたが、見つけられず代わりにfilemtime関数を見つけました。 ただ、filemtime関数は更新された日時みたいで、それぞれのファイルを見てみると Warning: filemtime() : stat failed for ファイル名 というエラーが出てしまいます。 ファイルを作成したタイミングでその時間に更新してやればよいかと思い、 touch($filename, date("U")); としてみましたが、同様でした。 ちなみにファイルの作成は、ブラウザでファイルアップロードして作成します。 よい解決方法がありましたらご教授ください。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • php.iniが読み込まれていない。解決方法?

    PHPの学習を始めている初心者です。Xamppを使用してPHPの学習を進めていますが、かきの問題に直面しています。 mbstringを使用したいのですが、これが使用できません。いろいろと調べてみましたところ、原因はどうやらphp.iniが読み込まれていないことがその理由のようです。 環境 OS: Windows8.1 Xampp: PHP7.2.0 状況: 1. Php.ini内の設定で、extension=mbstring.dllは初めから(デフォールトの状態)コメントアウトはされていません。 2. この状態でmbstring関連の関数を使用するとエラーとなってしまいます。 3. 一方、php info( );を実行すると示されるPHPの関連情報の中に、mbstringの関連条項はしめされません。 4. php.iniの実際のディレクトリーは、上のPHP情報に示されるphp.iniのディレクトリーを示すLoaded Configuraion Fileに示されるディレクトリーと全く同じです。 5. 以上より、”php.iniのディレクトリーは正しく認識されているが、読み込まれていない”と思うのですが。 6. 上記を除いたXamppの作動状況は、特に問題なく作動しています。 解決策を教えていただけると助かります。

    • 締切済み
    • PHP
  • MFCのexeのプログラムを MFCのdllに書き換えたい

    VC++6.0を使用しています 新規作成 MFC AppWizard(exe) 新規 OK [ステップ1] ダイアログベース 次へ [ステップ2/4] 次へ [ステップ3/4] 次へ [ステップ4/4] 終了 で作られた、雛型のexeをそっくりMFCのDLLに書き換えたい と考えています exeで作られたアプリを他のユーザーがVB6.0からDLLとして呼び出したいので書き換えて欲しいと頼まれました MFCのDLLも雛型は簡単に出来上がるのですが 以下の関数を独立したオブジェクトにして、VB6.0からDLLの関数VBFUNC1として呼び出したいのですが、VBから呼び出すと AfxEnableControlContainer();でアサートで引っ掛かってしまいます ダイアログを使用したMFCのEXEをDLLとして使う場合の、コーディングについてご指南ください BOOL CAaaApp::VBFUNC1() //BOOL CAaaApp::InitInstance() {   AfxEnableControlContainer(); #ifdef _AFXDLL   Enable3dControls(); #else   Enable3dControlsStatic(); #endif   CAaaDlg dlg;   m_pMainWnd = &dlg;   int nResponse = dlg.DoModal();   if (nResponse == IDOK)   {   }   else if (nResponse == IDCANCEL)   {   }   return FALSE; }

専門家に質問してみよう