锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
#include <stdio.h>
#pragma comment(lib,"ws2_32.lib")
void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested=MAKEWORD(1,1);
err = WSAStartup(wVersionRequested, &wsaData);
if (err != 0)
{
return;
}
if (LOBYTE(wsaData.wVersion)!=1 ||
HIBYTE(wsaData.wVersion)!=1)
{
WSACleanup();
return;
}
SOCKET sockSrv=socket(AF_INET,SOCK_DGRAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);
bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
char recvBuf[100];
char sendBuf[100];
char tempBuf[200];
SOCKADDR_IN addrClient;
int len=sizeof(SOCKADDR);
while(1)
{
recvfrom(sockSrv,recvBuf,100,0,(SOCKADDR*)&addrClient,&len);
if('q'==recvBuf[0])
{
sendto(sockSrv,"q",strlen("q")+1,0,(SOCKADDR*)&addrClient,len);
printf("Chat end!%n");
break;
}
sprintf(tempBuf,"%s say:%s",inet_ntoa(addrClient.sin_addr),recvBuf);
printf("%s\n",tempBuf);
printf("Please input data:\n");
gets(sendBuf);
sendto(sockSrv,sendBuf,strlen(sendBuf)+1,0,(SOCKADDR*)&addrClient,len);
}
closesocket(sockSrv);
WSACleanup();
}
#include <Winsock2.h>
#include <stdio.h>
#pragma comment(lib,"ws2_32.lib")
void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested=MAKEWORD(1,1);
err = WSAStartup(wVersionRequested, &wsaData);
if (err != 0)
{
return;
}
if (LOBYTE(wsaData.wVersion)!=1 ||
HIBYTE(wsaData.wVersion)!=1)
{
WSACleanup();
return;
}
SOCKET sockClient=socket(AF_INET, SOCK_DGRAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);
char recvBuf[100];
char sendBuf[100];
char tempBuf[200];
int len=sizeof(SOCKADDR);
while(1)
{
printf("please input data:\n");
gets(sendBuf);
sendto(sockClient,sendBuf,strlen(sendBuf)+1,0,
(SOCKADDR*)&addrSrv,len);
recvfrom(sockClient,recvBuf,100,0,(SOCKADDR*)&addrSrv,&len);
if('q'==recvBuf[0])
{
sendto(sockClient,"q",strlen("q")+1,0,
(SOCKADDR*)&addrSrv,len);
printf("Chat end!\n");
break;
}
sprintf(tempBuf,"%s say:%s",inet_ntoa(addrSrv.sin_addr),recvBuf);
printf("%s\n",tempBuf);
}
closesocket(sockClient);
WSACleanup();
}
]]>
#include <stdio.h>
#pragma comment(lib,"ws2_32.lib")
void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
return;
}
if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1) {
WSACleanup( );
return;
}
SOCKET socksrv=socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN addrsrv;
addrsrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrsrv.sin_family=AF_INET;
addrsrv.sin_port=htons(4444);
bind(socksrv,(sockaddr*)&addrsrv,sizeof(SOCKADDR));
listen(socksrv,5);
SOCKADDR_IN addrclient;
int len=sizeof(SOCKADDR);
while(1)
{
SOCKET sockconn=accept(socksrv,(SOCKADDR*)&addrclient,&len);
char sendbuf[100];
sprintf(sendbuf,"welcome %s to TCP server",inet_ntoa(addrclient.sin_addr));
send(sockconn,sendbuf,strlen(sendbuf)+1,0);
char recvbuf[100];
recv(sockconn,recvbuf,100,0);
printf("%s\n",recvbuf);
closesocket(sockconn);
}
}
]]>#include <Winsock2.h>
#include <stdio.h>
#pragma comment(lib,"ws2_32.lib")
void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested=MAKEWORD(1,1);
err = WSAStartup(wVersionRequested, &wsaData);
if (err != 0)
{
return;
}
if (LOBYTE(wsaData.wVersion)!=1 ||
HIBYTE(wsaData.wVersion)!=1)
{
WSACleanup();
return;
}
SOCKET sockSrv=socket(AF_INET,SOCK_DGRAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);
bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
SOCKADDR_IN addrClient;
int len=sizeof(SOCKADDR);
char recvBuf[100];
recvfrom(sockSrv,recvBuf,100,0,(SOCKADDR*)&addrClient,&len);
printf("%s\n",recvBuf);
closesocket(sockSrv);
WSACleanup();
}
#include <Winsock2.h>
#include <stdio.h>
#pragma comment(lib,"ws2_32.lib")
void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested=MAKEWORD(1,1);
err = WSAStartup(wVersionRequested, &wsaData);
if (err != 0)
{
return;
}
if (LOBYTE(wsaData.wVersion)!=1 ||
HIBYTE(wsaData.wVersion)!=1)
{
WSACleanup();
return;
}
SOCKET sockClient=socket(AF_INET,SOCK_DGRAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);
sendto(sockClient,"Hello",strlen("Hello")+1,0,
(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
closesocket(sockClient);
WSACleanup();
}
]]>
#include <stdio.h>
#pragma comment(lib,"ws2_32.lib")
void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(1, 1);
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
{
return;
}
/* 鍒ゆ柇鏄惁鏄緱鍒扮殑鐗堟湰 */
if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 )
{
/* 緇堟浣滅敤 */
WSACleanup( );
return;
}
/* 鍒涘緩濂楁帴瀛?nbsp;*/
SOCKET sockSrv=(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);
bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
listen(sockSrv,5);
SOCKADDR_IN addrClient;
int len=sizeof(SOCKADDR);
while(1)
{
SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);
char sendBuf[100];
sprintf(sendBuf,"Welcome %s to hhtp://www.sunxin.org",inet_ntoa(addrClient.sin_addr));
send(sockConn,sendBuf, strlen(sendBuf)+1,0);
char recvBuf[100];
recv(sockConn,recvBuf,100,0);
printf("%s\n",recvBuf);
}
}
]]>class CMyApp:public CWinApp
{
public:
virtual BOOL InitInstance();
};
class CMainWindow:public CFrameWnd
{
public:
CMainWindow();
protected:
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP()
};
#include <afxwin.h>
#include "Hello.h"
CMyApp myAPP;
BOOL CMyApp::InitInstance()
{
m_pMainWnd = new CMainWindow;
m_pMainWnd->SetIcon(LoadIcon(IDI_ICON1),TRUE);
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}
BEGIN_MESSAGE_MAP(CMainWindow,CFrameWnd)
ON_WM_PAINT()
END_MESSAGE_MAP()
CMainWindow::CMainWindow()
{
Create(NULL,_T("aaa"));
}
void CMainWindow::OnPaint()
{
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
dc.DrawText(_T("ad"),-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
}
Project Setting
General
Use of MFC 閫夋嫨 Use MFC in a Shared DLL
]]>#include <iostream>
using namespace std;
void main()
{
cout << "hello world!";
int index;
cin >> index;
}
娉ㄦ剰,<iostream.h>鏄痗椋庢牸鐨?瑕佷箞鏄?
#include <iostream>
using namespace std;
瑕佷箞鏄?
#include <iostream.h>
榪欐椂鏄笉鑳界敤using namespace std;榪欏彞璇濈殑錛屽惁鍒欎細(xì)鍑虹幇浣犻亣鍒扮殑闂:
fatal error C1083: 鏃犳硶鎵撳紑鍖呮嫭鏂囦歡:“iostream.h”: No such file or directory
鍦ㄦ爣鍑咰++閲岄潰,鏄笉鐢?include <iostream.h>榪欑褰㈠紡浜?鑰岃浣跨敤#include <iostream>
鍦╒C6鏄湪C++鏍囧噯鍑烘潵鍓嶅彂甯冪殑,鎵浠ュ畠鍙互浣跨敤#include <iostream.h>榪欏艦寮?
]]>
{
// TODO: 鍦ㄦ娣誨姞鎺т歡閫氱煡澶勭悊紼嬪簭浠g爜
/*
if(m_blsCreate == FALSE)
{
m_btn.Create(_T("Huyvanpull"),BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD,
CRect(0,0,100,100),this,123);
m_blsCreate=TRUE;
}
else
{
m_btn.DestroyWindow();
m_blsCreate=FALSE;
}
*/
/*
int num1, num2, num3;
char ch1[10],ch2[10],ch3[10];
GetDlgItem(IDC_EDIT1)->GetWindowText((LPTSTR)(LPCTSTR)ch1,10);
GetDlgItem(IDC_EDIT2)->GetWindowText((LPTSTR)(LPCTSTR)ch2,10);
num1=atoi(ch1);
num2=atoi(ch2);
num3=num1+num2;
itoa(num3,ch3,10);
GetDlgItem(IDC_EDIT3)->SetWindowText((LPTSTR)(LPCTSTR)ch3);
*/
/*
int num1, num2, num3;
char ch1[10],ch2[10],ch3[10];
GetDlgItemText(IDC_EDIT1,(LPTSTR)(LPCTSTR)ch1,10);
GetDlgItemText(IDC_EDIT2,(LPTSTR)(LPCTSTR)ch2,10);
num1=atoi(ch1);
num2=atoi(ch2);
num3=num1+num2;
itoa(num3,ch3,10);
SetDlgItemText(IDC_EDIT3,(LPTSTR)(LPCTSTR)ch3);
*/
/*
int num1, num2, num3;
num1=GetDlgItemInt(IDC_EDIT1);
num2=GetDlgItemInt(IDC_EDIT2);
num3=num1+num2;
SetDlgItemInt(IDC_EDIT3,num3);
*/
/*
//榛樿涓虹湡,鎸囩ず鏁版嵁姝e湪琚幏鍙?nbsp;
UpdateData();
m_num3=m_num1+m_num2;
//璁劇疆鎴愬亣,鎸囩ず鏁版嵁姝e湪琚垵濮嬪寲
UpdateData(FALSE);
*/
/*
int num1=0, num2=0, num3=0;
TCHAR ch1[10],ch2[10],ch3[10];
m_edit1.GetWindowText(ch1,10);
m_edit2.GetWindowText(ch2,10);
num1=_ttoi(ch1);
num2=_ttoi(ch2);
num3=num1+num2;
_itot(num3,ch3,10);
//CString h;
//int a=_ttoi(h);
//CString h;
// h.Format(_T("%d"),num3);
m_edit3.SetWindowText(ch3);
*/
//GetDlgItem(IDC_EDIT1)->SendMessage(WM_GETTEXT,10,(LPARAM)ch1);
/*
int num1=0, num2=0, num3=0;
TCHAR ch1[10],ch2[10],ch3[10];
m_edit1.SendMessage(WM_GETTEXT,10,(LPARAM)ch1);
m_edit2.SendMessage(WM_GETTEXT,10,(LPARAM)ch2);
num1=_ttoi(ch1);
num2=_ttoi(ch2);
num3=num1+num2;
_itot(num3,ch3,10);
m_edit3.SendMessage(WM_SETTEXT,10,(LPARAM)ch3);
*/
int num1=0, num2=0, num3=0;
TCHAR ch1[10],ch2[10],ch3[10];
SendDlgItemMessage(IDC_EDIT1,WM_GETTEXT,10,(LPARAM)ch1);
SendDlgItemMessage(IDC_EDIT2,WM_GETTEXT,10,(LPARAM)ch2);
num1=_ttoi(ch1);
num2=_ttoi(ch2);
num3=num1+num2;
_itot(num3,ch3,10);
SendDlgItemMessage(IDC_EDIT3,WM_SETTEXT,10,(LPARAM)ch3);
}
]]>
闄M_COMMAND涔嬪,鎵鏈変互WM_寮澶寸殑娑堟伅.浠嶤Mnc媧劇敓鐨勭被,閮藉彲浠ユ帴鏀舵綾繪秷鎭?
2. 鍛戒護(hù)娑堟伅
鏉ヨ嚜鑿滃崟,鍔犻熼敭鎴栧伐鍏鋒爮銆佸姞閫熸垨宸ュ叿鏍忔寜閿傝繖綾繪秷鎭兘浠M鈥擟OOMMAND鍛堢幇.鍦∕FC涓?閫氳繃鑿滃崟欏規(guī)爣璇?ID)鏉ュ尯鍒嗕笉鍚岀殑鍛戒護(hù)娑堟伅.鍦⊿DK涓?閫氳繃娑堟伅鐨剋Param 鍙傛暟璇嗗埆.
3.閫氬憡娑堟伅
鐢辨帶浠朵駭鐢熺殑娑堟伅,渚嬪,鎸夐挳鐨勫崟鐐瑰嚮,鍒楄〃妗嗙殑閫夋嫨鍧囦駭鐢熶簺綾繪秷鎭?涓虹殑鏄悜鍏剁埗紿楀彛(閫氬父鏄璇濇)閫氱煡浜嬩歡鐨勫彂鐢?榪欑被娑堟伅涔熸槸鏄疻M_COMMAND褰㈠紡鍛堢幇.浠嶤CmdTarget媧劇敓鐨勭被,閮藉彲浠ユ帴鏀跺埌榪欑被娑堟伅.
]]>
]]>
HDC鏄寚紿椾綋,鎺т歡鐨勫彞鏌?鏄暱鏁寸被鍨?
榪欐槸windows緙栫▼閲屽緢閲嶈鐨勪竴涓被鍨?瀹冨敮涓鏍囪瘑浜嗕竴涓璞?姣斿紿楀彛,鎸夐挳,瑙嗗浘絳?涔熷氨鏄竴涓唬鍙?
鍙﹀瀹冨拰C++娌℃湁浠涔堢洿鎺ョ殑鍏崇郴,HDC鏄痺indows緋葷粺API涓畾涔夌殑涓涓暟鎹被鍨?
娉ㄦ剰,GetDC()寰楀埌鐨勫彞鏌勫繀欏葷敤ReleaseDC()鍑芥暟閲婃斁錛佽岀敤Create寤虹珛鐨勫彞鏌勫繀欏葷敤DeleteDC()閲婃斁.
2. BOOL MoveToEx(HDC hdc, int x,int y,LPPOINT lppt).
hdc鏄綋鍓嶈澶囩殑鍙ユ焺.
x鏄?/span>X杞寸殑浣嶇疆,姘村鉤鏂瑰悜,涓鑸師鐐規(guī)槸鍦ㄥ睆騫曞乏涓婅鐨勪綅緗?
y鏄?/span>Y杞寸殑浣嶇疆,鍨傜洿鏂瑰悜.
lppt鏄Щ鍔ㄥ墠鐨勫潗鏍囦綅緗?
3.BOOL WINAPI LineTo(HDC hdc, int x, int y);
hdc鏄綋鍓嶈澶囩殑鍙ユ焺.
x鏄?/span>X杞寸殑浣嶇疆,姘村鉤鏂瑰悜,涓鑸師鐐規(guī)槸鍦ㄥ睆騫曞乏涓婅鐨勪綅緗?
y鏄?/span>Y杞寸殑浣嶇疆,鍨傜洿鏂瑰悜.