2005年8月16日火曜日

conio.hに見るCランタイム コンソール関数のサポート状況

MSC

C:\Program Files\Microsoft Visual C++ Toolkit 2003\include\conio.h
C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib\libc.lib
C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin\msvcr71.dll
http://www.microsoft.com/japan/msdn/library/ja/vclib/html/_crt_console_and_port_i.2f.o.asp

関数:
_cgets, _cgetws
_cprintf, _cwprintf
_cputs
_cscanf, _cwscanf
_getch, _getwch
_getche, _getwche
_kbhit
_putch, _putwch
_ungetch, _ungetwch

定数:
なし

MinGW, cygwin-mingw

C:\MinGW\include\conio.h, C:\MinGW\lib\libmsvcrt.a
C:\cygwin\usr\include\mingw\conio.h, c:\cygwin\lib\mingw\libmsvcrt.a

関数:
_getch(), _getche(), _kbhit(), _putch(), _ungetch()
_cgets(), _cprintf(), _cputs(), _cscanf()

変数:
なし

BCC5.5

C:\Borland\bcc55\Include\conio.h
C:\Borland\bcc55\Lib\cw32.lib
C:\Borland\bcc55\Lib\cw32i.lib, C:\Borland\bcc55\Lib\import32.lib, C:\Borland\bcc55\Bin\cc3250.dll

関数:
getpass()
getch(), getche(), kbhit(), putch(), ungetch() / _getch()
cgets(), cprintf(), cputs(), cscanf()
gotoxy(), wherex(), wherey()
gettext(), movetext(), puttext()
highviedo(), normvideo(), lowvideo()
clreol(), clrscr()
delline(),insline()
textattr(), textcolor(), textbackground(), textmode()
_setcursortype()
__flush_win95_keyup_events()
window()
gettextinfo()

変数:
グローバル変数 directvideo, _wscroll
グローバル定数 _NOCURSER, _SOLIDCURSER, _NORMALCURSER, BLINK, PASS_MAX
構造体 text_info
列挙子 text_modes, COLORS

DJGPP

C:\DJGPP\include\conio.h
C:\DJGPP\lib\libc.a

関数:
getch(), getche(), kbhit(), putch(), ungetch() / _conio_kbhit()
cgets(), cprintf(), cputs(), cscanf()
gotoxy(), wherex(), wherey()
gettext(), movetext(), puttext()
blinkvideo(), highviedo(), normvideo(), lowvideo(), intensevideo()
clreol(), clrscr()
delline(), insline()
textattr(), textcolor(), textbackground(), textmode()
_setcursortype(), _set_screen_lines()
gppconio_init()
window()
gettextinfo()

変数:
グローバル変数 directvideo, _wscroll
グローバル定数 _NOCURSER, _SOLIDCURSER, _NORMALCURSER, BLINK
構造体 text_info
列挙子 text_modes, COLORS

Windowsのコンソール入出力

主にWindowsのコマンドプロンプトの操作に使われる
(MS Visual)Cランタイムライブラリに含まれるコンソール入出力関数
http://www.microsoft.com/japan/msdn/library/ja/vclib/html/_crt_console_and_port_i.2f.o.asp
#include <conio.h>
  • _getch()
  • _getche()
  • _kbhit()
  • _ungetch()
  • _putch()
  • など


アンダバーが付かないgetch()などのANSI Cに準拠しない古い関数名でも使える。


MinGWとcygwin-mingwのgccは、MS Cランタイム(msvcrt.dll)にリンクされるので、
MSVCと同じ関数が使える。
DJGPPv2、BCC5.5では、独自のCランタイムライブラリとヘッダファイルが用意されているので、MS Cと同じ関数の他に、DOS系で利用されていた関数が使える。
http://www.borland.co.jp/cppbuilder/freecompiler/faq/bccfaq3.html

cygwin版gccは、cygwin?.dllにリンクされるが、Cランタイムのコンソール操作関数は
含まれていないのでcygwinからリンクする場合、-mno-cygwinを付けないと利用出来ない。

MSVCのコンソール入出力には、色を変えたりカーソルを移動する操作は用意されていないので、必要な場合はWindowsAPIに用意されているコンソール入出力関数(wincon.h)で行なう。
http://www.microsoft.com/japan/msdn/library/ja/jpfileio/html/_win32_setconsolecursorposition.asp


コンソール関数
conio.h ― Cランタイムライブラリ ヘッダ
wincon.h ― WindowsAPI, プラットフォームライブラリ ヘッダ

シリアル(COM Port)操作関数
conio.h ― Cランタイムライブラリ ヘッダ
winbase.h ― WindowsAPI, プラットフォームライブラリ ヘッダ


(MS Visual)Cランタイムライブラリ
msvcrt.lib libc.lib ― スタティックライブラリ
msvcrtd.lib libcd.lib ― msvcrt.dll用インポートライブラリ
msvcrt{,20,40}.dll, msvcr{70,71}.dll ― ダイナミックライブラリ

(Windows)プラットフォーム(SDK)ライブラリ
kernel32.lib ― kernel32.dll用インポートライブラリ
kernel32.dll ― ランタイムDLLファイル

Borand Cランタイムライブラリ
cw32.lib ― スタティクライブラリ
cw32i.lib ― Importライブラリ
cc3250.dll ― ランタイムDLL

DJGPP Cランタイムライブラリ
libc.a ― スタティクライブラリ

MinGW Cランタイムライブラリ
libmsvcrt.a

sRGBを中心とした色空間とその変換

http://gonbee.blogspot.com/2006/04/srgb.htmlへ更新

sRGB CRTで表示できる範囲を8bit表示で色誤差が最小となるように定めた色空間(8bit)
http://www.w3.org/Graphics/Color/sRGB
sYCC RGB変換先をsRGBに合うように定めたYCbCrの色空間(8bit)
http://www.color.org/sycc.pdf
bg-sRGB sRGBの外へ拡大した色空間(10bit)
http://www.color.org/bgsrgb.pdf
scRGB sRGBをbg-sRGBよりさらに拡大したガンマ変換しない比例した色空間(16bit)
修正1 http://www.iec.ch/cgi-bin/getcorr.pl/iec61966-2-2-cor1{ed1.0}en.pdf?file=iec61966-2-2-cor1{ed1.0}en.pdf
http://www.extremetech.com/article2/0,1697,1176921,00.asp
sRGB64 scRGBになる前の名称
http://www.map.tu.chiba-u.ac.jp/IEC/100/TA2/parts/part2-2/
IECドラフト(案) 100/PT61966(PL)103
HDR色空間 (High Dinamicrange) 広い濃度の表現力を持つ色空間を指す。
OpenEXRなど、指数表現を持ちscRGB(10の3.5乗)のダイナミックレンジより広いものが多い。
http://www.anyhere.com/gward/hdrenc/Encodings.pdf

R,G,Bbg-sRGB(10) = ( R,G,BsRGB(8) x 2) + 384
R,G,BsRGB(8) = ( R,G,Bbg-sRGB(10) -384 ) /2 の切り捨て


RscRGB3.240625-1.537208-0.498629X
GscRGB=(-0.9689311.8757560.041518Y
BscRGB0.055710-0.2040211.056996Z

http://www2.nict.go.jp/tao/kenkyu/itakua/seika/60/60yokou.pdf より引用

ICC 色空間レジストリ
http://www.color.org/rgbchardata.html

IEC TC 100/TA 2
http://www.map.tu.chiba-u.ac.jp/IEC/100/TA2/
IEC TC 100/TA 2の進行状況 (最終更新日:2003月1月5日)
http://www.map.tu.chiba-u.ac.jp/IEC/100/TA2/parts/

標準リスト (最終更新日:2002年4月9日)
http://www.iecapc.jp/06/diffusenew/standards/standards.html

2005年8月13日土曜日

Windows上のPython GUIパッケージ

Pythonパッケージ
日本Pythonユーザ会(PyJUG) http://www.python.jp/Zope/

◊ PyGTK

必要なもの:Pythonパッケージ、PyGTKパッケージ、GTKパッケージ

組み合わせ:
Python2.3, PyGTK2.4, GTK+2.4
Python2.3, PyGTK2.6, GTK+2.6
Python2.4, PyGTK2.4, GTK+2.4
Python2.4, PyGTK2.6, GTK+2.6

◊ PyQt Non-commercial version on Qt v2.3.0

必要なもの:Pythonパッケージ、PyQtパッケージ、Qtランタイム

必要なもの(詳細):
Python2.3,
Non-commercial version of PyQt v3.13 for Windows and Python v2.3 (PyQt-win-nc-msvc-3.13.exe),
non-commercial version of Qt v2.3.0 for Windows (qt-mt230nc.dll)
C:\Python23\Lib\site-packages に入れる。

◊ PyQt GPLed version on Qt3

必要なもの:Pythonパッケージ、Cコンパイラ(Bcc5.5, MINGW, VC, VC.net)、Qt 3/Win Freeソース、SIPとPyQtソース

wxPython

http://www.wxpython.org/
Unicode版とANSI版がある。
必要なもの:Pythonパッケージ、wxPythonパッケージ
組み合わせ:
Python2.3, wxPython2.6 (ANSI or Unicode)
Python2.4, wxPython2.6 (ANSI or Unicode)

2005年8月12日金曜日

Pythonのグラフィカルユーザーインターフェースパッケージ

Tkinter

http://www.python.jp/
Pythonライブラリに用意されているインターフェース

ライブラリリファレンス http://www.python.jp/doc/release/lib/tkinter.html
An Introduction to Tkinter http://www.pythonware.com/library/
Wiki http://wiki.python.org/moin/TkInter

PyGTK

http://www.pygtk.org/

Tutrial http://www.pygtk.org/pygtk2tutorial/
GTKチュートリアルに沿った内容
Reference http://www.pygtk.org/reference.html
Articles & Tutorials http://www.pygtk.org/articles.html

PyQt

http://www.riverbankcomputing.co.uk/pyqt/

GUI Programming with Python: QT Edition http://www.opendocs.org/pyqt/
Errata http://www.valdyas.org/python/book.html
Python Bindings for Qt http://www.river-bank.demon.co.uk/docs/pyqt/PyQt.html
Articles http://www.riverbankcomputing.co.uk/articles.php
Wiki http://www.diotavelli.net/PyQtWiki

wxPython

http://www.wxpython.org/

How to Learn wxPython
http://wiki.wxpython.org/index.cgi/How_20to_20Learn_20wxPython
Tutorial http://wxpython.org/tutorial.php

その他

16.6 他のグラフィカルユーザインタフェースパッケージ ― Python ライブラリリファレンス
http://www.python.jp/doc/release/lib/other-gui-packages.html

2005年8月5日金曜日

Windows XPのConsoleフォントを変更する

バックアップを取った後、regedit,regedt32などでレジストリを編集する。
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont"
"932"

*MS ゴシック
*MS Gothic


*NFモトヤアポロ1等幅
*NfMotoyaAporo W1 mono
*MS ゴシック
*MS Gothic

などに変更してコンピュータを再起動する。

コマンドプロンプトを開き、タイトルバーの左端のアイコンを左クリックして、
フォントタブを開き変更する。

2005年8月2日火曜日

50年代に登場したIBMタイプライターにちなんだ固定幅欧文フォント

タイプボールといってフォントが彫られたボールを交換することが出来た

IBM
Prestige Elite, Howard Kettler,1953
Kettler, Howard Ketter, 1955
Courier, Howard Kettler, 1956
Letter Gothic, Roger Roberson, 1956

Bitstreamから現在コンピュータフォントとして出ているもの
Courier (10 Pitch)
Pica (10 Pitch)
Letter Gothic (12 Pitch)
Prestage (12 Pitch)
Script (12 Pitch)
Orator (15 Pitch), John Scheppler