鑰岃繖涓狪bmsSerialPort.dll棣栧厛浣跨敤CreateFile錛岀劧鍚庝嬌鐢℅etCommState絳夌瓑涓緋誨垪communications resource function鏉ュ畬鎴愮鍙i氳
ok,瀛﹀埌浜嗕竴浜涗笢瑗?
鍥炲
锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
SPenCollection::Load鍜?Save鍑芥暟瀹炵幇鎵撳紑鐢葷瑪鏂囦歡錛堟枃浠剁殑鍐呭鏄竴緋誨垪SPen瀵硅薄錛?br />// for example
聽SPenCollection pc;
聽pc.Load("C:\\1.pen");
鎴戜笉鐭ラ亾濡備綍搴忓垪鍖栧鍣ㄧ被瀵硅薄錛岃澶ц櫨鎸囨暀銆?br />
// SPen object
class SPen : public CObject
{
聽DECLARE_SERIAL(SPen)
public:
聽SPen();
聽virtual ~SPen();
public:
聽int lineStyle;
聽int lineWidth;
聽COLORREF lineColor;
public:
聽virtual void Serialize(CArchive& ar);
};
// SPen.cpp : 瀹炵幇鏂囦歡
//
#include "stdafx.h"
#include "ArchiveTest.h"
#include "SPen.h"
// SPen
IMPLEMENT_SERIAL(SPen,CObject,1)
SPen::SPen()
{
聽lineStyle = PS_SOLID;
聽lineWidth = 2;
聽lineColor = RGB(255,0,0);
}
SPen::~SPen()
{
}
// SPen 鎴愬憳鍑芥暟
void SPen::Serialize(CArchive& ar)
{
聽if (ar.IsStoring())
聽{聽// storing code
聽聽ar<<lineStyle;
聽聽ar<<lineWidth;
聽聽ar<<lineColor;
聽}
聽else
聽{聽// loading code
聽聽ar>>lineStyle;
聽聽ar>>lineWidth;
聽聽ar>>lineColor;
聽}
}
///////////////////////////////////////
// 鍏抽敭鏄瀹炵幇濡備綍淇濆瓨涓緋誨垪鐨凷Pen瀵硅薄
// load 鍜?save鍑芥暟瀹炵幇鎵撳紑鐢葷瑪鏂囦歡錛堟枃浠剁殑鍐呭鏄竴緋誨垪SPen瀵硅薄錛?br />// for example
/** SPenCollection pc;
聽聽聽pc.Load("C:\\1.pen");
聽**/
#pragma once
// SPenCollection 鍛戒護鐩爣
#include "SPen.h"
#include <afxtempl.h>
class SPenCollection : public CObject
{
聽DECLARE_SERIAL(SPenCollection)
public:
聽SPenCollection();
聽virtual ~SPenCollection();
聽void AddPen(SPen* pen);
聽void Load(CString strFileName);
聽void Save(CString strFileName);
// CArray 涓嶇煡閬撶敤寰楀涓嶅錛岃澶ц櫨鎸囨暀
聽CArray<SPen*,SPen*> pens;
};
聽
#define M_PI 3.141
#include <math.h>
class Vector3D{
聽Vector3D(){x=y=z=0.0;}
聽Vector3D(double vx, double vy,double vz=0.0){
聽聽x = vx;
聽聽y = vy;
聽聽z = vz;
聽}
聽
聽double magnitude() const{
聽聽return sqrt(x*x+y*y+z*z);
聽}
聽double dotP(const Vector3D& v1,const Vector3D& v2){
聽聽return (v1.x*v2.x+v1.y*v2.y+v1.z*v2.z);
聽}
聽// get the vector angle
聽double angle() const{
聽聽double ret = 0.0;
聽聽double m = magnitude();
聽聽if (m>1.0e-6) {
//聽闂鍑哄湪榪欓噷錛侊紒錛侊紒
// ==============================
聽聽聽double dp = dotP(*this,Vector3D(1.0,0.0));
//==============================
聽聽聽if (dp/m>=1.0) {
聽聽聽聽ret = 0.0;
聽聽聽}
聽聽聽else if (dp/m<-1.0) {
聽聽聽聽ret = M_PI;
聽聽聽}
聽聽聽else {
聽聽聽聽ret = acos( dp / m);
聽聽聽}
聽聽聽if (y<0.0) {
聽聽聽聽ret = 2*M_PI - ret;
聽聽聽}
聽聽}
聽聽return ret;
聽}
protected:
聽double x;
聽double y;
聽double z;
};#pragma once
#define M_PI 3.141
#include <math.h>
class Vector3D{
聽Vector3D(){x=y=z=0.0;}
聽Vector3D(double vx, double vy,double vz=0.0){
聽聽x = vx;
聽聽y = vy;
聽聽z = vz;
聽}
聽
聽double magnitude() const{
聽聽return sqrt(x*x+y*y+z*z);
聽}
聽double dotP(const Vector3D& v1,const Vector3D& v2){
聽聽return (v1.x*v2.x+v1.y*v2.y+v1.z*v2.z);
聽}
聽// get the vector angle
聽double angle() const{
聽聽double ret = 0.0;
聽聽double m = magnitude();
聽聽if (m>1.0e-6) {
聽聽聽double dp = dotP(*this,Vector3D(1.0,0.0));
聽聽聽if (dp/m>=1.0) {
聽聽聽聽ret = 0.0;
聽聽聽}
聽聽聽else if (dp/m<-1.0) {
聽聽聽聽ret = M_PI;
聽聽聽}
聽聽聽else {
聽聽聽聽ret = acos( dp / m);
聽聽聽}
聽聽聽if (y<0.0) {
聽聽聽聽ret = 2*M_PI - ret;
聽聽聽}
聽聽}
聽聽return ret;
聽}
protected:
聽double x;
聽double y;
聽double z;
};
#include <iostream>
using namespace std;
void Insert(char *s, char *s1, int i)
{
聽char *p,*q;
聽p = s + strlen(s); // p聽鎸囧悜s鐨勬湯灝?1
聽q = p + strlen(s1);聽//q 鎸囧悜鏂版瀯閫犵殑瀛楃涓茬殑\0聽
聽*q = '\0';
聽//聽
聽for(p--,q--;p>=s+i-1;)
聽{
聽聽*(p--) = *(q--);
聽}
聽//
聽for(p=s+i-1;*s1;)
聽{
聽聽*(p++) = *(s1++);
聽}
}
int _tmain(int argc, _TCHAR* argv[])
{
聽char *s = "Student";
聽char *s1 = "Teacher";
聽Insert(s,s1,3);
// 鏈熷緟鐨勮緭鍑烘槸StuTeacherdent;
聽cout<<s;
聽return 0;
}
// 榪樻湁鎴戝鏋滄妸insert鍑芥暟鏀規垚涓嬮潰鐨勫簲璇ヤ篃鏄彲浠ョ殑鍚?br />
void Insert2(char *s, char *s1, int i)
{
聽char *p,*q;
聽p = s + strlen(s); // p聽鎸囧悜s鐨勬湯灝?1
聽q = p + strlen(s1);聽//q 鎸囧悜鏂版瀯閫犵殑瀛楃涓茬殑\0聽
聽*q = '\0';
聽//聽
聽for(p--,q--;p>=s+i-1;)
聽{
聽聽*p-- = *q--;
聽}
聽//
聽for(p=s+i-1;*s1;)
聽{
聽聽*p++ = *s1++;
聽}
}
Richard zeng聽 3/19/2006 10:50:36 AM
榪欏嚑澶╁張鎶婁互鍓嶇殑
C
璇劇▼緲諱簡鍑烘潵
,
鍥犱負鑷繁瀵?/span>
C
鐨勬寚閽堝拰鏁扮粍涓嶆槸寰?/span>
DEV.
妯℃嫙
C
搴撳嚱鏁頒腑鐨勮漿鍖栧ぇ灝忓啓鍑芥暟
.
//
杞崲鎴愬ぇ鍐?/span>
,
鍑芥暟鍙傛暟涓哄瓧絎︽暟緇?/span>
//
鍒╃敤瀛楃涓叉暟緇勭殑緇撳熬閮芥槸
\0
void
ToUpper(chars[])
{
聽聽聽聽聽聽
int
i=0;
聽聽聽聽聽聽
while(s[i++]!='\0' )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽 //
鍒ゆ柇鏄惁鏄皬鍐欏瓧姣?/span>
聽聽聽聽聽聽聽聽聽聽聽聽聽
if(s[i]>='a' && s[i]<='z' )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
s[i] -= 32;聽聽聽聽 //
灝忓啓瀛楁瘝姣斿ぇ鍐欏瓧姣嶇殑
ASCII
澶?/span>
32
聽聽聽聽聽聽 }
}
// 杞崲鎴愬ぇ鍐?/span> , 鍑芥暟鍙傛暟涓哄瓧絎︽寚閽?/span>
void
ToUpperPtr(char* s)
{
聽聽聽聽聽聽
while(*s != '\0')
聽聽聽聽聽聽 {
//
鍒ゆ柇鏄惁鏄皬鍐欏瓧姣?/span>
聽聽聽聽聽聽聽聽聽聽聽聽聽
if(*s >='a' && *s <='z')
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 *s -= 32; 聽聽聽聽 //
灝忓啓瀛楁瘝姣斿ぇ鍐欏瓧姣嶇殑
ASCII
澶?/span>
32
聽聽聽聽聽聽聽聽聽聽聽聽聽
s++; //
鎸囬拡鐨勫湴鍧
++
聽聽聽聽聽聽 }
}
宸ョ▼涓嬭澆錛?FONT face="Times New Roman" size=3>http://www.shnenglu.com/Files/richardzeng/C++涓疄鐜頒覆鍙f搷浣滅被%20SerialPortLib.rar
鏈榪戝皝瑁呬簡涓涓覆鍙g被,涓庡ぇ瀹跺垎浜?璇ョ被鐨勪富瑕佺壒鐐規槸錛氳兘瀹炵幇鏁版嵁鐨勫紓姝ユ帴鏀訛紱鏃犻』MFC鐨勬敮鎸侊紱鍙兘鍦╒S2003緙栬瘧閫氳繃錛屼絾鍙鍋氬皯閲忎慨鏀瑰氨鍙互鍦╒C6.0涓嬌鐢紟浣跨敤璧鋒潵闈炲父綆鍗曪紝涓昏浠g爜濡備笅錛?BR>
涓插彛鏁版嵁鐨勬帴鏀跺湪
瀹屾垚錛屼綘涔熷彲浠ヤ笉浣跨敤瑙傚療鑰咃紝鐩存帴閲嶅啓void CSerialPort::OnReceiveData(byte *pData, size_t nDataLen)鍙互鑾峰緱鏇村ソ鐨勬墽琛屾晥鐜囥傚幓鎺夎瀵熻呭璞ist.
鏈変粈涔堥棶棰橀偖浠惰仈緋?dyj057@gmail.com