10.27.2009

Shame on me

I use the code on

Windows CE: Loading a Driver with ActivateDeviceEx

on my post: http://realchecko.blogspot.com/2009/09/source-load-unload-device-driver.html.
And I didn't mention about it, until the Author : Bruce.Eitman give me a comment.


真對不起,我用了 Bruce Eitman 的 example code 在我的 blog 中,竟然沒有提到。
直到 Bruce. Eitman 在文章的comment 中提醒。我才注意到。



我已經在那篇文章補上 Link 了,同時,另外寫這一篇,來表達我的歉意。

非常對不起。

10.14.2009

location of lib on DLL project created by platform builder

使用 PlatformBuilder (5.0 or VS2005+ 6.0) 的 subproject create DLL project 時,
還是會產生 lib 檔 (工使用者 static link,不必用 dllimport)。

但是位置會在 project 的 obj\ARMV4I\retail\ 下。
Dll 當然就是在 bsp project 的 release folder 下囉


* 這個要感謝 Franz 的教導。

10.13.2009

Add working source folder under subversion

將 工作中的 sourcecode 加入 subversion 的方法:

把 folder 拉到 subversion 中。
再 checkout 出來,用新的名字。
然後把其中的 .svn folder copy 出來,放到原來工作的folder 中。


其實就是要有 .svn 就是.

10.11.2009

忍不住,還是要寫一下。

大約是一年前,發生倫敦交易所大當機事件
現在,新的CEO上任,決定:




這篇說得真是...

他說 原先這套系統設計就是為了達到.

10.08.2009

DllMain in Loading Unloading DLL

DLL 在被 Load 進 memory 後,DLL 的 DllMain( ) 會先被呼叫。
並且傳入參數 ul_reason_for_call。
依次是:
  • DLL_PROCESS_ATTACH
  • DLL_THREAD_ATTACH
DLL 被 unload 的時候,一樣會呼叫 DllMain(),然後傳入參數:
  • DLL_PROCESS_DETACH
嗯,就只有一次。

10.07.2009

USB OTG role decide

USB OTG 是靠 ID PIN 決定 當 Host 還是 Device。

ID -- GND : Host
ID -- FLOAT : Device

ref : Wiki USB On-The-Go
其中描述到 A 就是 Host

10.05.2009

Simple Code : DialogBase, Win32, Change Statics content

就是一個簡單的dialog,兩個 button,一個 static (text)。

DialogApp.rc

// Microsoft Visual C++ generated resource script.
//
#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#define APSTUDIO_HIDDEN_SYMBOLS
#include "windows.h"
#include "RCDef.h"
#undef APSTUDIO_HIDDEN_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
// Chinese (Taiwan) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHT)
#ifdef _WIN32
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
#pragma code_page(950)
#endif //_WIN32

#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//

2 TEXTINCLUDE
BEGIN
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
"#include ""windows.h""\r\n"
"#include ""RCDef.h""\r\n"
"#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
"\0"
END

1 TEXTINCLUDE
BEGIN
"resource.\0"
END

3 TEXTINCLUDE
BEGIN
"\r\0"
END

#endif // APSTUDIO_INVOKED


/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//

IDD_DIALOG1 DIALOGEX 0, 0, 186, 90
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
//FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "INC",IDBTNINC,129,7,50,14
PUSHBUTTON "DEC",IDBTNDEC,129,24,50,14
LTEXT "Static",IDC_STATIC,23,14,54,15
END


/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//

#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
IDD_DIALOG1, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 179
TOPMARGIN, 7
BOTTOMMARGIN, 83
END
END
#endif // APSTUDIO_INVOKED

#endif // Chinese (Taiwan) resources
/////////////////////////////////////////////////////////////////////////////



#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//


/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

resource.h

// Microsoft Visual C++ generated include file.
// Used by DialogApp.rc
//
#define IDD_DIALOG1 101
#define IDBTNINC 1000
#define IDBTNDEC 1001
#define IDC_STATIC 1002

// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 102
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1002
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

DialogApp.cpp

// DialogApp.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include "resource.h"

BOOL CALLBACK DialogProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
static value=100;

switch(uMsg){
case WM_INITDIALOG:
return TRUE;
case WM_CLOSE:
EndDialog(hWnd,0);
return FALSE;
case WM_COMMAND:
switch(wParam){
case IDBTNINC:
value++;
SetDlgItemInt(hWnd,IDC_STATIC,value,FALSE);
break;
case IDBTNDEC:
SetDlgItemInt(hWnd,IDC_STATIC,value,FALSE);
value--;
break;
}
break;
default:
return FALSE;
}
}


int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.

return DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,DialogProc);
}

主要是用 SetDlgItemInt( ) 來變更 STATIC 的內容

10.02.2009

Add subproject
A Simple WCE program

Add New Item - Resource - Resource File

Open the resource file - right button - add resource - dialog -new
: the resource editor opened.

在 .rc 按 right button - resource includes ..

RDP function for close source Virtualbox

close source version virtualbox 的額外功能除了 usb 以外,還有一個就是 rdp 遠端連線功能。

這個遠端連線是由 Virtualbox 提供的,不是 guest OS。所以即使 guest OS 沒有遠端桌面功能(或是 disable 了遠端連線),我們還是可以經由 virtualbox 的 遠端桌面 連線 guest OS。

在 Setting 的遠端桌面 有一個 port number。
假設 該 server (不是 guest OS) 的 ip 是 192.168.145.72。
port number 是 3389
我們只要用遠端連線程式,連到 192.168.145.72:3389
就可以連過去了。

使用 KITL debug AP

在 KITL 連線中。
先用 VS2005 開啟 AP 的 source ,設定 break point。
因為這時候 AP 還沒 run,所以 break point 會是 "inactive" 的狀態。
然後 launch AP (可以用 click , 或是 s command)。
到了該 break point ,就會停住。

這樣就不用一定在 VS2005 , CE 6.0 OS 中開啟 subproject 的 project 才能 debug。
所有的 program 都能 debug (只要有source code)。