Windows kaneko@ipl.t.u-tokyo.ac.jp tutimura@mist.t.u-tokyo.ac.jp 2002 12 4 8
Windows Web Windows Windows WinSock
UNIX Microsoft Windows Windows Windows
Windows Windows.NET Windows 95 DOS Win3.1(Win16API) Win95(Win32cAPI) Me Windows NT Windows NT (Win32API) XP Windows.NET Win32API Windows
Windows.NET.NET Java VM.NET Framework MSIL(Microsoft Intermediate Language) CLR(Common Language Runtime) Java CLR.NET Framework MSIL NET MSIL Windows etc.
Windows IDE Visual Studio Visual C++, Code Warrior RAD Rapid Application Development Visual Basic, Visual C#, Delphi, C++ Builder Web IIS Microsoft Web +ASP Visual InterDev
Web IIS (Internet Information Server) ASP(Active Server Pages) Web Visual InterDev ASP.NET VisualStudio.NET
ASP (Active Server Pages) Web Web JavaScript VBScript IIS Web HTML
http://localhost/test.asp <%@ Language=VBScript %> <HTML><BODY> <% for i = 1 to 10 %> <p> Hello World! <% Response.Write(i) %> </p> <% next %> </BODY></HTML>
IIS+ASP Web SQL DB ODBC HTML
Windows Microsoft (VisualStudio, 6.0.NET) VisualBasic (RAD, BASIC) VisualC# (RAD, C#) VisualC++ (IDE, C++) Borland Delphi (RAD, Object Pascal) C++Builder (RAD, C++) Kylix (Delphi UNIX )
Windows Visual C++, Code Warrior Visual Basic Java, Visual C# GUI Delphi, C++Builder, Visual C#
Microsoft Visual Basic Windows RAD.NET CLR VB6.0 VB.NET
Public Class Form1 Inherits System.Windows.Forms.Form Private components As System.ComponentModel.Icontainer Public Sub New() MyBase.New() InitializeComponent() End Sub Private components As System.ComponentModel.IContainer components = New System.ComponentModel.Container() Me.Text = "Form1" End Sub End Class
Microsoft Visual C# VisualStudio.NET C# Java Java CLR.NET Framework
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; public class Form1 : System.Windows.Forms.Form { private System.ComponentModel.Container components = null; public Form1() { InitializeComponent(); } private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.size = new System.Drawing.Size(300,300); this.text = "Form1"; } static void Main() { Application.Run(new Form1()); } }
Boland Delphi, C++Builder ObjectPascal, C++ RAD Windows RAD VCL.exe
C++Builder GUI 2Way-Tool VCL 2Way-Tool
//--------------------------------------------------------------------------- void fastcall TForm1::OpenButtonClick(TObject *Sender) { if (OpenDialog1->Execute()) { ListBox1->Items->LoadFromFile(OpenDialog1->FileName); } } //--------------------------------------------------------------------------- void fastcall TForm1::ListBoxClick(TObject *Sender) { Edit1->Text = ListBox1->Items->Strings[ListBox1->ItemIndex]; } //---------------------------------------------------------------------------
Microsoft Visual C++ WindowsAPI.NET Windows.exe MSIL (Managed C++) Visual RAD MFC GUI
Visual C++ MFC MFC
Windows Windows WinMain Window Class Window Class Window Handler Window Handler Win32API
Window Class Window Handler Window Class Window Handler Window Window Instance Window Instance
Window Message Dispatch Window Instance Window Message Window Class Window handler Message Dispatch
Windows Message Message ID WM_ First (wparam, 32 ) Last (lparam, 32 ) Message ID USER
Window WM_LBUTTONDOWN WM_KEYDOWN WM_CREATE WM_CLOSE WM_INITDIALOG WM_PAINT WM_COMMAND Window Handler swicth
Windows WinSock MFC CSocket Delphi TSocket WinSock WinSock API
WinSock UNIX Socket Windows API socket() bind () listen () accept () connect () read() write() closesocket() UNIX
Windows msec
WinSock read() write() accept connect
GUI GUI I/O UNIX Select I/O Windows
WinSock I/O UNIX WindowsMessage I/O Windows WSA
WSA WinSock WSAStartup WSACleanup WSAAsyncSelect select WSAAsyncSelect Windows Message
WSAAsyncSelect WSAAsyncSelect (s, hwnd, wmsg, levent ) SOCKET s HWND hwnd Window unsigned int wmsg ( ID) long levent ( )
accept WSAAsyncSelect ( s, hwnd, WM_USER + 1, FD_ACCEPT); bind (acceptsocket, &sin, sizeof(sin)); listen (acceptsocket, 32); LRESULT CALLBACK WndProc (HWND hwnd, UINT wmessage, WPARAM wparam, LPARAM lparam) { switch (wmessage) { case WM_USER + 1: // newsocket = accept (acceptsocket,
[1] Winsock, ISBN4-7741-0371-3, DaveRoberts,,