iniファイルRead・共有フォルダアクセス(メモ)

職場でプログラムできないので、
プロのプログラマーからプライベートプログラマーに転職予定のもっぱーです。

VC++ 2008を使ってツールを開発中です。

ツール名:ファイル監視君(仮)
内容:指定したファイルの更新日を監視し、
   ファイルが更新されたら知らせるツール
   共有フォルダ内のファイルを監視するのが目的。

しかし、VC++6.0しか使ってこなかった俺(浦島太郎)は
VC++2008は新世界の域なのでした・・・
色々見た目代わりすぎっすよorz

□今日覚えたこと
VC++2008の使い方
・iniファイルの読み書き方法
・パスがかかった共有フォルダへアクセスする方法

      • -

□iniファイルの読み書き方法(MFC)

CWinAppを使用してファイルの読み書きを行う。
 ソース的には下記感じ

・ini読みソース
 CWinApp *pWinApp=AfxGetApp();
CString strUser = pWinApp->GetProfileString( セクション名,キー名,既定の文字列,以下無視可能);

・iniファイルの中身
[セクション名]
キー名=StrUserに入れたい文字列


 ちなみにiniファイルの指定は
 C○○○○○App::InitInstance()のdlg.DoModal()前の行で
 m_pszProfileNameの中身を書き換えればOK
 (m_pszProfileNameのメモリをdeleteする必要あり)
 
 あと、SetRegistryKeyはコメントアウトすべし。(レジストリを使おうとするので)


・・・ということを調べるのに半日かかった(主にワイド文字列やVSの操作で苦労した)んだが
普通のWin32APIで楽々いけることが判明した(しかも昔作ったコードだった)

GetPrivateProfileString(セクション名, キー名,格納用変数,変数のサイズ,iniファイル名);

・・・こっちのがはるかに楽だorz

      • -

・パスがかかった共有フォルダへアクセスする方法

 WNetAddConnection2関数を実行してやれば、ログインできる。
 下記感じで使う。

 NETRESOURCE ns;
ns.dwType=RESOURCETYPE_DISK;
ns.lpLocalName=_T("");//ローカル名、不要
ns.lpRemoteName=共有フォルダ名
ns.lpProvider=NULL;//プロバイダ名、不要
 WNetAddConnection2(&ns,パスワード,ユーザ,CONNECT_UPDATE_PROFILE);