なんとなく

なんとなく書きます

charとwchar

charとwchar間の変換について。


wcstombs_sでwchar→char
mbstowcs_sでchar→wchar
の変換ができる。
ただし、変換先のメモリを作成する必要がある。

コード例
・wcstombs_sについて
wchar* strWchar;//変換元のwchar
size_t length = _tcsclen(strWchar);
char* strChar = new char[length+1];//変換先のchar
size_t wLength=0;
errno_t error = wcstombs_s(&wLength , strChar , sizeof(WCHAR)*length , strWchar,256);

・mbstowcs_sについて
char* strChar;//変換元のchar
size_t length = _tcsclen(strChar);
WCHAR* strWchar = new WCHAR[length+1];//変換先のwchar
size_t wLength=0;
errno_t error = wcstombs_s(&wLength , strWchar , sizeof(char)*length , strChar,256);

windowの位置,サイズについて

winodwの位置とdisplay情報の取得について

◆windowの位置について

・アプリケーションのサイズを取得
アプリケーションの左上を原点にした領域を取得できる.
  Rectangle rect = this.ClientRectangle;
  Rectangle rect2 = DisplayRectangle;
の2つの方法か

・アプリケーションの位置を取得
画面左上の位置(displayの左上を原点)
  Point point = this.DesktopLocation;

画面左上の領域(displayの左上を原点)
  Rectangle rect = this.DesktopBounds;



◆display情報の取得について

System.Windows.Forms.Screen.AllScreens
ですべてのdisplayの情報を取得できる.

//すべてのスクリーンの情報を取得
Screen[] screen = Screen.AllScreens;

//スクリーン0の領域を取得
Rectangle a = screen[0].Bounds;

//スクリーン0のタスクバーなどを除いたアプリケーションが使える領域の取得
Rectangle b = screen[0].WorkingArea;

tchar

charとtcharの対応について

char -> tchar
atoi -> _ttoi
atof -> _ttof

printf -> _tprintf
sprintf -> _stprintf

fopen -> _tfopen
fprintf -> _ftprintf
fclose -> fclose

_ttoi(atoi)に関して
なぜか、代入した文字列の最後の文字しか数字に返さなかった。
_ttofに代入してintにcastすることで文字列をintに変換することは、できたが
よくわからん。



tcharがwcharとcharで区別する場合は、以下のように書く。
#ifdef UNICODE
//wchar用のコード
#else
//char用のコード
#endif

コンパイルを切り替えるには、

プロパティ→全般→文字セットで
Unicode...でwchar
マルチバイト...でchar
のコードが実行されるようになる。

自動補正のON,OFF

カメラの自動補正は主に下の3つ。
WB、Brightness,auto gain

int ret;
//設定用パラメータ0ならOFF 1ならONになる。
double autoGainPara ,whiteBalancePara ,britenessPara ;
//第2引数今回の用途では必要なし。
double para2;

//下のようにして自動補正の有無を設定する。
//自動補正のパラメータは変更等はまた別。
ret = is_SetAutoParameter( m_hCam , IS_SET_ENABLE_AUTO_GAIN , &autoGainPara , &¶2);
para2=0;
ret = is_SetAutoParameter( m_hCam , IS_SET_ENABLE_AUTO_WHITEBALANCE , &whiteBalancePara , ¶2);
para2=0;
ret = is_SetAutoParameter( m_hCam , IS_SET_AUTO_BRIGHTNESS_ONCE , &britenessPara , ¶2);

tooltip

クラスウィザードの仮想関数から
PreTranslateMessage
を呼び出す。
classview -> virtual function
pretrancelate

string str;
Ctooltip tooltip;
tooltip.create(this);
で作って.
tooltip.add( getdlg() , str );
これにコントロールと加えたい文字列を加える.