CWinApp::m_pszProfileNameはdeleteじゃなくfreeする
MFCアプリでiniファイルの書き出しがうまくいかない現象に悩んでいました。その現象自体はiniファイルのパスをフルパスで指定することで解決したのですが(Vista以降で起こるUACがらみの挙動が影響しているらしい)、今度はプログラム終了時にヒープが壊れて文句をいわれるようになってしまいました。 ...
MFCアプリでiniファイルの書き出しがうまくいかない現象に悩んでいました。その現象自体はiniファイルのパスをフルパスで指定することで解決したのですが(Vista以降で起こるUACがらみの挙動が影響しているらしい)、今度はプログラム終了時にヒープが壊れて文句をいわれるようになってしまいました。 ...
IUniformResourceLocatorを使ってインターネットショートカット(*.url)を作成するありがちなコードがWindows 7 64bit版だと動きませんでした(ファイル自体は作られるが中にURLが入らない)。 if (!SUCCEEDED(CoInitialize(NULL))) return FALSE; // IUniformResourceLocator オブジェクトを作成しポインタを取得する IUniformResourceLocator *pURL = NULL; HRESULT hResult = CoCreateInstance (CLSID_InternetShortcut, NULL, CLSCTX_INPROC_SERVER, IID_IUniformResourceLocator, (LPVOID*)&pURL); BOOL bResult = TRUE; if (SUCCEEDED(hResult)) { IPersistFile *ppf = NULL; // ショートカットを二次記憶装置に保存するため IPersistFile // インターフェイスの問い合わせをおこなう hResult = pURL->QueryInterface(IID_IPersistFile, (void **)&ppf); if (SUCCEEDED(hResult)) { // URLを設定する pURL->SetURL(csURL, 0); #ifdef _UNICODE ppf->Save(csFile, TRUE); #else WCHAR wsz [MAX_PATH]; // Unicode 文字列へのバッファ // 文字列がANSI文字で構成されるようにする MultiByteToWideChar(CP_ACP, 0, csFile, -1, wsz, MAX_PATH); // ショートカットを保存する ppf->Save(wsz, TRUE); #endif // IPersistFile へのポインタを開放する ppf->Release(); } else { bResult = FALSE; } // IUniformResourceLocator へのポインタを開放する pURL->Release(); } else { bResult = FALSE; } CoUninitialize(); return bResult; 結局、Save()に渡すパスが相対パスだとだめで絶対パスだと大丈夫みたいなんですが、いつの間にかこういう仕様になったのでしょうか。謎は深まる…。 ...
iPhone SDK 3.2.1から3.2.2に入れ替え。3.2.1をアンインストールしてから3.2.2を入れた。 アンインストールはターミナルで以下のコマンドを実行する。 $ sudo /Developer/Library/uninstall-devtools --mode=all インストールはdmgファイルをマウントしてインストールスクリプトを実行するだけ。 うちのMac環境はSnow Leopardオンリーだから関係ないけど、Leopard用のiPhone SDKがダウンロードできなくなっていた。古い環境もダウンロードできればいいのに。 ...
SQLを書くのは苦にならないのですがいいかげんSQLite3を直で使うのはよくないと改心し、Core Dataに関して調べてみました。 iPhone Dev Center…日本語版のPDFあり Core Data プログラミングガイドの概要…Cocoa用だけど参考になるかと。 日本語ドキュメントっていまいち探せません。Google検索からしかリンクが見つからなかったのでどこから入ればいいのかしばらくうろついてしまいました。 ...
そろそろWindows7対応をしないといけないと思いWindows 7 64bit版でFaEditをビルドしてみたのですが、「コンピュータにmfc90dがないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。」とエラーが表示され起動できず…orz。それにしても「プログラムを再インストールしてみてください」っていう適当なエラーメッセージ、Visual Studio 2008を再インストールしろってことなんでしょうか? ...
MySQLで上記エラーが表示される場合、設定ファイルmy.iniを書き換えmax_allowed_packetの設定を追加します。 [mysqld] max_allowed_packet = 16M
タブバーに登録するアイコンに関する覚え書き。 サイズは30x30。 背景は透過。 ダウンロードできそうなリンク。 Glyphish: Icons for iOS and WatchKit: ライセンスはCreative Commons Attribution PICOL - Pictorial Communication Language - Icons & Pictorgrams: ライセンスはCreative Commons iPhoneアプリのTABメニュー用のフリーアイコン素材70個くらい « iPhone&ガジェ 8casetteBLOG: ライセンスはCreative iPhoneアプリのツールバー部分に使えそうなアイコン色々:phpspot開発日誌: リンク集
UITabViewControllerを使ったアプリを作るまで。はじめてのiPhone3プログラミングにあったやり方まとめ。 XcodeでWindow Based Applicationを作る。 ClassisフォルダでUIViewControllerのサブクラスを必要なだけ追加する。xibファイルと.hファイルも同時に生成しておく。xibファイルはResourcesフォルダに移動しておく。 XXXAppDelegate.hを変更。UITabBarController *rootControllerを追加。 @interface XXXAppDelegate : NSObject <UIApplicationDelegate> { UIWindow *window; UITabBarController *rootController; } @property (nonatomic, retain) IBOutlet UIWindow *window; @property (nonatomic, retain) IBOutlet UITabBarController *rootController; XXXAppDelegate.mも変更。 @synthesize rootController; - (void)applicationDidFinishLaunching:(UIApplication *)application { // Override point for customization after application launch [window addSubview:rootController.view]; [window makeKeyAndVisible]; } - (void)dealloc { [rootController release]; [window release]; [super dealloc]; } MainWindow.xibをダブルクリックしInterface Builderで開く。MainWindow.xibとタイトルのあるウィンドウ(Windowではない)に、「Tab Bar Controller」をドロップする。 XXXAppDelegateからTab Bar Controllerにコントロールドラッグし、rootViewControllerを接続する。 Tab Bar Controllerを開き、ステータスバー部分をクリックして属性インスペクタを開く。プラスボタンを押してタブを追加する。 タブ部分をクリックして属性インスペクタでxibを変更する。もう一回タブ部分をクリックして、イメージとタイトルを変更する。 以上で一応完成。起動するとタブが切り替えられるアプリが完成。
調査続行中ですが、Full-text search with Cocoa にiPhoneのObjective-Cでで全文検索するため方法が書いてありました。少しまとめると、 LuceneKitを使う。ただしそのままでは使えない(?) sqliteを使う。ただしそのままでは使えないので、amalgamation sourceをダウンロードし「#define SQLITE_ENABLE_FTS3」を定義してビルドしなおして使う。 ということが必要のようです。日本語の場合さらに工夫しないとだめそうですね。 ...