Recently in Programming Category

Synergy 1.3.1

あいかわらず、全角半角が通らないのでパッチ

CMSWindowsKeyState.cpp に細工

--- C:/Data/DownloadFiles/20060404/z/synergy-1.3.1/lib/platform/CMSWindowsKeyState.cpp	2006-04-02 21:16:40.000000000 +0900
+++ C:/Data/DownloadFiles/20060404/synergy-1.3.1/lib/platform/CMSWindowsKeyState.cpp	2006-04-04 17:38:20.945422400 +0900
@@ -278,8 +278,8 @@
 	/* 0x0f0 */ { kKeyNone },		// OEM specific
 	/* 0x0f1 */ { kKeyNone },		// OEM specific
 	/* 0x0f2 */ { kKeyNone },		// OEM specific
-	/* 0x0f3 */ { kKeyNone },		// OEM specific
-	/* 0x0f4 */ { kKeyNone },		// OEM specific
+	/* 0x0f3 */ { kKeyZenkaku },	// VK_OEM_AUTO
+	/* 0x0f4 */ { kKeyZenkaku },	// VK_OEM_ENLW
 	/* 0x0f5 */ { kKeyNone },		// OEM specific
 	/* 0x0f6 */ { kKeyNone },		// VK_ATTN			
 	/* 0x0f7 */ { kKeyNone },		// VK_CRSEL			
@@ -535,8 +535,8 @@
 	/* 0x1f0 */ { kKeyNone },		// OEM specific
 	/* 0x1f1 */ { kKeyNone },		// OEM specific
 	/* 0x1f2 */ { kKeyNone },		// OEM specific
-	/* 0x1f3 */ { kKeyNone },		// OEM specific
-	/* 0x1f4 */ { kKeyNone },		// OEM specific
+	/* 0x1f3 */ { kKeyNone },		// VK_OEM_AUTO
+	/* 0x1f4 */ { kKeyNone },		// VK_OEM_ENLW 
 	/* 0x1f5 */ { kKeyNone },		// OEM specific
 	/* 0x1f6 */ { kKeyNone },		// VK_ATTN			
 	/* 0x1f7 */ { kKeyNone },		// VK_CRSEL			
@@ -1149,7 +1149,12 @@
 				}
 				else {
 					// found in table
-					switch (m_buttonToVK[i]) {
+					switch (m_buttonToVK[i]) {
+					case VK_KANJI:
+					case VK_OEM_AUTO:
+					case VK_OEM_ENLW:
+						item.m_id         = kKeyZenkaku;
+						break;
 					case VK_TAB:
 						// add kKeyLeftTab, too
 						item.m_id         = kKeyLeftTab;

__security_cookie が未解決な場合

メモ

You may receive the "Linker tools error LNK2001" error messages when you build source code by using the Win32 Software Development Kit (SDK) or the Windows Server 2003 Driver Development Kit (DDK) for Windows Server 2003 Service Pack 1

Visual Studio 2005 でVC8を使ってて出たエラー LNK2001。
GSを切ってやると消えますが、気持ち悪いのでチェック。

bufferoverflowU.lib これをリンクするといいみたい。

うちの場合memcpy まで無いと言われたので、そもそもライブラリがリンクされてねぇかなと、見たらデフォルトのライブラリをリンクしない設定になっていたのでリンクするように修正。とりあえずコンパイル通った。

コンパイルすると、なんだかせきゅりてぃーな警告がいっぱいでるねぇ…

Ref++ - C++ Refactoring Tool for Visual C++

Visual Studio 2003, 2005 のアドインとして動作する ネイティブC++用のリファクタリングツール。

$59で日本円で7000円弱でした。

メンバ変数の名前の変更とか、長ったらしい関数からのメソッド抽出とか、手作業でやるとうんざりする作業がボタン1つで簡単にできます。

  1. 関数名や変数名の変更
  2. メンバ変数をカプセル化してアクセサ(GetとSet)を作る
  3. 長い関数から部分を抽出して関数化
  4. 関数の引数を増減したり変更したり
  5. 長ったらしい式を変数化してすっきり
  6. メンバ関数をサブクラスに左遷
  7. 基底クラスに栄転
  8. 基底クラスの導出

が、出来るみたいです。名前変更と関数抽出以外はまだ触ってませんが、これだけでも便利

名前変更などの作業時に長々とソースコードの解析をするをじっと待つことになるんですが、キャッシュファイルを作ってるみたいで2度目以降は実用的な速度が出ます。最初の解析がもう少し速くなるとよりよいです。

VS2005では、C#なんかはリファクタリング機能がありますが、C++にはないのでこのツールがあるとちょっと便利になります。

データ交換フォーマット

| 1 Comment

XML簡略記法とかのメモ
Collection & Copy - JSON入門
Introducing JSON
YAML Ain't Markup Language

YAMLのページ曰くJSONは、YAMLのサブセットにあたるらしい。
YAMLは、Rubyとかではちゃんと実装があるけどC++には見当たらない。
自分で実装するにはちょっとしんどそうだなぁと思っていたので、JSONについてちいと調べてみよう、ということで、メモ


ダイアログ ボックスでのエディット コントロールからの Enter キーを使用する方法(Microsoft サポート技術情報)

どうせまたハマルだろうから貼っておく。
待っててもメッセージは飛んでこない。だから自分で飛ばすということ。

ちなみにこんな感じ
001     LRESULT OnOK(WORD wNC/*wNotifyCode*/, WORD wID, HWND hWndCtl, BOOL& /*bHandled*/)
002     {
003         // TODO: Add validation code 
004         CWindow focusWindow;
005         focusWindow.Attach(GetFocus());
006         if (focusWindow.m_hWnd == NULL)
007             return 0;
008         if (focusWindow.GetDlgCtrlID() == IDOK)
009             TBase::OnOK(wNC, wID, hWndCtl);
010         else
011             focusWindow.SendMessage(WM_CHAR, VK_RETURN, 0);
012         return 0;
013     }

About this Archive

This page is an archive of recent entries in the Programming category.

Palm is the previous category.

Purchased is the next category.

Find recent content on the main index or look in the archives to find all content.

Pages

Powered by Movable Type 5.031