2016/08/14

【VC++】Log4cppを使ってみる


Log4cppというものがあるらしく、使ってみた。


今回はsourceforgeのLog4cpp1.1.1をダウンロードして
Visual Studio Express 2015 for Windows Desktopでビルドする手順。


解凍したファイルからmsvc10/msvc10.slnをダブルクリック。

VisualStduioが立ち上がり、
アップグレード関連のメッセージを表示してくるのでOKを押して進む。

ソリューション内に9つプロジェクトがあるが
log4cppというプロジェクトだけリビルドする。

ビルドエラーが2件発生。。。

エラー C2084 関数 'int snprintf(char *const ,const std::size_t,const char *const ,...)' は既に本体を持っています。 log4cpp log4cpp\src\snprintf.c 524
エラー C2084 関数 'int vsnprintf(char *const ,const std::size_t,const char *const ,va_list)' は既に本体を持っています。 log4cpp log4cpp\src\snprintf.c 538

うーん。。。
とりあえず、log4cppのプロジェクトを右クリックし、
プロパティ⇒C/C++⇒プリプロセッサにある
プリプロセッサの定義にHAVE_SNPRINTF;PREFER_PORTABLE_SNPRINTF;を追加。

もっかいリビルド。

ビルド成功。

dllとlibができている。


これでいいのかな・・・。
ちょっと不安。

2016/03/31

今更Dropboxをインストール【windows】




というわけで、インストールしました。

窓の杜Dropboxをダウンロードして、実行。

しばらくしたらログイン画面が出てくるので、ユーザ名とパスワードを入力してログイン。

ユーザの下にDropboxができました。

ちゃんちゃん。

ファイルに緑チェックがついてる。

右クリックしたら以前のバージョンも見れるし。

まるでsvnみたい。

ま、そんなもんか。


2015/11/20

2015/07/10

【baserCMS】メニューでタイトルを入力していたらSQLエラー


バージョンはbaserCMS 3.0.7

メニューでタイトルにごちゃごちゃと長い名前を入力すると、

SQLエラー

basercms/lib/Model/PageCategory.phpをappに入れて
108lineにある

'title' => array(
array('rule' => array('minLength', 1),
'message' => 'ページカテゴリタイトルを入力してください。',
'required' => true),
array('rule' => array('maxLength', 255),
'message' => 'ページカテゴリタイトルは255文字以内で入力してください。')
)


'title' => array(
array('rule' => array('minLength', 1),
'message' => 'ページカテゴリタイトルを入力してください。',
'required' => true),
array('rule' => array('maxLength', 55),
'message' => 'ページカテゴリタイトルは55文字以内で入力してください。')
)

に修正。

xx_contentsテーブルにもこのタイトルを保存するんだけど、
こっちは55文字までしか受け付けてない。

それだけだった。


2015/07/06

【Cakephp2】バリデーション 重複チェック


ユーザ情報を登録する際に
既に登録されているメールアドレスについては登録させたくない。

独自にバリデーション関数を作成し、
エラー表示をしようと思ったがつまずいた。

validate関数には

   public $validate = array(
      'email' => array(
         'notEmpty' => array(
            'rule' => 'notEmpty', 
            'message' => '必須項目です。'
         ),
         'custom' => array(
            'rule' => '_compareEmail',
            'message' => '既に登録されているメールアドレスです。'
         );


protected function _compareEmail($data) {

~~~~割愛~~~~
  // 一致した
  return false;
}


的なのを使用としたら

Warning (2): preg_match()

ってさ...

結局のところ独自関数なんて作成せず

         'custom' => array(
            'rule' => 'isUnique',
            'message' => '既に登録されているメールアドレスです。'
         );

って書けばことは済んだ。