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);
is_SetOptimalCameraTiming
最適化した時にFPSとpixelClockは設定されているので
is_SetOptimalCameraTimingの後に
is_SetFrameRate,is_PixekClockは、不要。
露光時間は、再設定が必要。
is_exposureは呼び出す必要あり。