亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? port_dll.cpp

?? VC_serial_port_DLL
?? CPP
字號:
// port_dll.cpp : Defines the initialization routines for the DLL.
// Download by http://www.codefans.net

#include "stdafx.h"
#include "port_dll.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

//
//	Note!
//
//		If this DLL is dynamically linked against the MFC
//		DLLs, any functions exported from this DLL which
//		call into MFC must have the AFX_MANAGE_STATE macro
//		added at the very beginning of the function.
//
//		For example:
//
//		extern "C" BOOL PASCAL EXPORT ExportedFunction()
//		{
//			AFX_MANAGE_STATE(AfxGetStaticModuleState());
//			// normal function body here
//		}
//
//		It is very important that this macro appear in each
//		function, prior to any calls into MFC.  This means that
//		it must appear as the first statement within the 
//		function, even before any object variable declarations
//		as their constructors may generate calls into the MFC
//		DLL.
//
//		Please see MFC Technical Notes 33 and 58 for additional
//		details.
//

/////////////////////////////////////////////////////////////////////////////
// CPort_dllApp

BEGIN_MESSAGE_MAP(CPort_dllApp, CWinApp)
	//{{AFX_MSG_MAP(CPort_dllApp)
		// NOTE - the ClassWizard will add and remove mapping macros here.
		//    DO NOT EDIT what you see in these blocks of generated code!
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPort_dllApp construction

CPort_dllApp::CPort_dllApp()
{
	// TODO: add construction code here,
	// Place all significant initialization in InitInstance
}

/////////////////////////////////////////////////////////////////////////////
// The one and only CPort_dllApp object

CPort_dllApp theApp;

CWinThread* m_pThread; // 代表輔助線程
	volatile BOOL m_bConnected;//表示連接否,用來標(biāo)識菜單串口連接和斷開連接是否可用
	volatile HWND m_hTermWnd;//輔助窗口
	volatile HANDLE m_hPostMsgEvent; // 用于WM_COMMNOTIFY消息的事件對象
	OVERLAPPED m_osRead, m_osWrite; // 用于重疊讀/寫

  // 串行口句柄
	int m_nBaud;//數(shù)據(jù)傳輸速率
	int m_nDataBits;//數(shù)據(jù)位
	BOOL m_bEcho;//表明本地回顯
	BOOL m_bNewLine;//表明自動換行
	int m_nParity;//校驗位
	CString m_sPort;//串行端口
	int m_nStopBits;//停止位

	HANDLE fp;   //打印機句并
	FILE *hp;

HANDLE _stdcall OpenConnection(int ipt)
{
	HANDLE m_hCom;
	COMMTIMEOUTS TimeOuts;
	DCB dcb;
    m_nBaud = 9600;
	m_nDataBits = 8;
	m_bEcho = FALSE;
	m_bNewLine = FALSE;
	m_nParity = 0;
	m_sPort = "COM1";
	m_nStopBits = 0;
	char s[5]="";
    sprintf(s,"COM%d",ipt);
	m_hCom=CreateFile(s, GENERIC_READ | GENERIC_WRITE, 0, NULL,
		OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL , 
		NULL);                                     // 重疊方式
    if(m_hCom==INVALID_HANDLE_VALUE)
		return 0;
    SetupComm(m_hCom,4096,4096);
    // 把間隔超時設(shè)為最大,把總超時設(shè)為0將導(dǎo)致ReadFile立即返回并完成操作
	TimeOuts.ReadIntervalTimeout=MAXDWORD; 
	TimeOuts.ReadTotalTimeoutMultiplier=0; 
	TimeOuts.ReadTotalTimeoutConstant=0; 
    /* 設(shè)置寫超時以指定WriteComm成員函數(shù)中的GetOverlappedResult函數(shù)的等待時間*/
	TimeOuts.WriteTotalTimeoutMultiplier=50;
	TimeOuts.WriteTotalTimeoutConstant=2000;
    SetCommTimeouts(m_hCom, &TimeOuts);
    if(!GetCommState(m_hCom, &dcb))
		return 0;
	dcb.fBinary=TRUE;
	dcb.BaudRate = m_nBaud; // 數(shù)據(jù)傳輸速率
 	dcb.StopBits = ONESTOPBIT;//1停止位
	dcb.ByteSize = m_nDataBits; // 每字節(jié)位數(shù)
    dcb.Parity = NOPARITY;                     //////////無奇偶校驗
    if(!SetCommState(m_hCom, &dcb))
	{
		AfxMessageBox("Can not Set DCB");
		return 0;
	 }
   SetCommMask(m_hCom, EV_RXCHAR);
   return m_hCom;
}

/************************************************

************************************************/

DWORD _stdcall ReadComm(HANDLE m_hCom,char* buf, DWORD dwLength)
{
   
	DWORD length=0;
	COMSTAT ComStat;
	DWORD dwErrorFlags;
//	int i;

	ClearCommError(m_hCom,&dwErrorFlags,&ComStat);
	//comstate.cbInQue 指明串口中已經(jīng)接受到的字節(jié)數(shù),不是readfile操作要求讀出的字節(jié)數(shù)
	length=min(dwLength, ComStat.cbInQue);
//	length=dwLength;
    //length 從串口讀取的字節(jié)數(shù)
    //&length指向調(diào)用該函數(shù)讀出的字節(jié)數(shù)。
	
	ReadFile(m_hCom,buf,length,&length,&m_osRead);
    PurgeComm(m_hCom,PURGE_TXCLEAR);//清除發(fā)送緩沖區(qū)
    PurgeComm(m_hCom,PURGE_RXCLEAR);//清除接受緩沖區(qū)

/*	FILE *fp;
	fp=fopen("cc.txt","w+b");  //寫,二進制
	if (fp!=NULL)
	fwrite(&dwLength,2,1,fp);
	fwrite(buf,dwLength,1,fp);
	fclose(fp);    
	
	  
	 fwrite(buffer,size,count,fp)
     buffer 寫入數(shù)據(jù)的存放地址
	 size 寫入數(shù)據(jù)的字節(jié)數(shù)
	 count 寫入多少個size字節(jié)數(shù)據(jù)項
	 fp  文件指針

	
	*/
 
	return length;
	//返回讀出的字節(jié)數(shù)。

}
/************************************************

************************************************/
DWORD _stdcall WriteComm(HANDLE m_hCom,char* buf, DWORD dwLength)
{
	BOOL fState;
	DWORD length=dwLength;
	COMSTAT ComStat;
	DWORD dwErrorFlags;
    ClearCommError(m_hCom,&dwErrorFlags,&ComStat);
    PurgeComm(m_hCom,PURGE_TXCLEAR);//清除發(fā)送緩沖區(qū)
    PurgeComm(m_hCom,PURGE_RXCLEAR);//清除接受緩沖區(qū)


	fState=WriteFile(m_hCom,buf,length,&length,&m_osWrite);
    if(!fState)
	{
       if(GetLastError()==ERROR_IO_PENDING)
		{
			GetOverlappedResult(m_hCom,&m_osWrite,&length,TRUE);// 等待
		}
		else
			length=0;
	}
    return length;
}
void _stdcall CloseConnection(HANDLE m_hCom)
{
CloseHandle(m_hCom);

}



/************************************************
并口打印機打印函數(shù)
************************************************/


int __stdcall ClosePalPort(void)
{
	CloseHandle(fp);
	return 1;
}
int __stdcall PalPortInit(int iPt)
{
   	DWORD dwBytesWritten =0;
	OVERLAPPED overlappedwrite;	
	overlappedwrite.Internal=0;
	overlappedwrite.InternalHigh=0;
	overlappedwrite.Offset=0;
	overlappedwrite.OffsetHigh=0;
	overlappedwrite.hEvent=CreateEvent(NULL,TRUE,FALSE,NULL);
	
	if(iPt==1)
	{
		fp=CreateFile( "LPT1",GENERIC_READ | GENERIC_WRITE, 0, 0, 
			OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,	0);
	}
	if(iPt==2)
	{
		fp=CreateFile( "LPT2",GENERIC_READ | GENERIC_WRITE, 0, 0, 
			OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,	0);
	}
	if(fp==INVALID_HANDLE_VALUE)
	{
		AfxMessageBox("can not open LPT ");
		CloseHandle(fp);
		return 0;
	}
	return 1;
}
//************************************************
//函數(shù): POS58_PrnCnEn
//功能: 向POS58打印機發(fā)送字符串并打印
//參數(shù): iPt:打印機端口,1:LPT1,2:LPT2
//      str:要發(fā)送的字符串
//返回: 1:成功;0:錯誤;
//說明: 此函數(shù)可以打印中英文混合字符串
//**************************************************
int __stdcall POS58_PrnCnEn(int iPt,char* str)
{
	Sleep(5);
	DWORD dwBytesWritten =0;
	OVERLAPPED overlappedwrite;	
	overlappedwrite.Internal=0;
	overlappedwrite.InternalHigh=0;
	overlappedwrite.Offset=0;
	overlappedwrite.OffsetHigh=0;
	overlappedwrite.hEvent=CreateEvent(NULL,TRUE,FALSE,NULL);
    
   WriteFile( fp,str,strlen(str),&dwBytesWritten, &overlappedwrite);
		
		{
			DWORD error;
			
			error=GetLastError();
			/*
			if (error!=ERROR_IO_PENDING)//寫不成功
				
			{
		           AfxMessageBox("Printer fail ");
				   return 0;
			}
			*/
		}
	
	return 1;
}

/*
//直接打印字符串
void __stdcall PrnStr(LPSTR str)
{
	
//	PalPortInit(1);
//	POS58_PrnCnEn(1,str);
 //  	POS58_PrnCnEn(1,ss);
//	ClosePalPort();
	 
	
	char ss[2]="\x0a";
	char s1[100]="";
	for(unsigned int i=0;i<strlen(str);i++)
		s1[i]=str[i];

   FILE *fp;
      fp=fopen("LPT1","w");
   if(fp!=NULL)
   {
   	   fwrite(&s1,strlen(s1),1,fp);
   	   fwrite(&ss,strlen(ss),1,fp);
   }
    fclose(fp);

}

//直接發(fā)送命令
void __stdcall PrnComm(LPSTR str)
{

//	PalPortInit(1);
//	POS58_PrnCnEn(1,str);
//	ClosePalPort();

	char s1[100]="";
	for(unsigned int i=0;i<strlen(str);i++)
		s1[i]=str[i];

	   FILE *fp;
      fp=fopen("LPT1","w");
   if(fp!=NULL)
   {
	   fwrite(&s1,strlen(s1),1,fp);
   }
    fclose(fp);

}

//直接發(fā)送命令
void __stdcall prn_next(LPSTR str)
{
	char s1[2]="\x0a";
	   FILE *fp;
      fp=fopen("LPT1","w");
   if(fp!=NULL)
   {
	   fwrite(&s1,strlen(s1),1,fp);
   }
    fclose(fp);

}
*/
//*********************************
//直接發(fā)送命令
//**********************************
int __stdcall open_hp()
{
	  hp=fopen("LPT1","w");
   if(hp!=NULL)
   {
         return 1;
   }
    
   return 0;
}

void __stdcall close_hp()
{
    fclose(hp);
}

//****************************************
//直接打印字符串
//****************************************
void __stdcall PrnStr(LPSTR str)
{
	
	
	char ss[2]="\x0a";
	char s1[100]="";
	for(unsigned int i=0;i<strlen(str);i++)
	s1[i]=str[i];
   	   fwrite(s1,strlen(s1),1,hp);
   	   fwrite(ss,strlen(ss),1,hp);

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产乱码一区二区三区| 欧美视频在线观看一区| 国产揄拍国内精品对白| 免费人成黄页网站在线一区二区 | 最新高清无码专区| 国产人伦精品一区二区| 国产欧美日韩三级| 欧美国产精品一区| 亚洲国产精品av| 亚洲欧美怡红院| 一区二区三区资源| 亚洲成人激情综合网| 午夜国产精品一区| 日韩黄色免费电影| 六月丁香婷婷久久| 国产精品99久久久久久似苏梦涵| 国产高清在线观看免费不卡| 国产精一区二区三区| 不卡一卡二卡三乱码免费网站| www.欧美亚洲| 在线日韩国产精品| 91精品久久久久久久久99蜜臂| 欧美丰满少妇xxxbbb| 日韩欧美在线123| 久久色中文字幕| 国产精品美女久久久久aⅴ| 亚洲免费观看在线视频| 亚洲伊人色欲综合网| 日本欧美加勒比视频| 国产盗摄一区二区三区| 99re在线视频这里只有精品| 欧美午夜一区二区| 欧美成人欧美edvon| 欧美国产精品久久| 亚洲国产视频在线| 狠狠色丁香婷综合久久| av不卡在线观看| 欧美日韩国产影片| 久久久久久99精品| 一区二区三区自拍| 国产一区二区三区高清播放| 91久久人澡人人添人人爽欧美| 91精品国产福利| 中文乱码免费一区二区| 亚洲一区二区成人在线观看| 久久精品国产久精国产爱| 不卡av免费在线观看| 欧美一区二区三区在线观看视频 | 亚洲第一福利一区| 国产九九视频一区二区三区| 色8久久人人97超碰香蕉987| 欧美大黄免费观看| 亚洲欧美二区三区| 激情综合色播激情啊| 一本大道久久精品懂色aⅴ| 欧美一卡二卡在线| 最新高清无码专区| 韩国精品在线观看| 欧美三级电影网| 国产精品国产精品国产专区不蜜 | 国产不卡免费视频| 91精品视频网| 亚洲精品亚洲人成人网| 韩国视频一区二区| 欧美日韩免费视频| 中文字幕一区二区三区视频| 久久黄色级2电影| 欧美三级在线播放| 亚洲欧洲成人自拍| 国产一区二区毛片| 91麻豆精品国产91久久久使用方法| 国产精品进线69影院| 蓝色福利精品导航| 欧美日韩国产区一| 亚洲精品少妇30p| 国产福利不卡视频| 欧美va亚洲va| 日韩av电影免费观看高清完整版在线观看| bt7086福利一区国产| 久久久亚洲国产美女国产盗摄| 天堂成人免费av电影一区| 972aa.com艺术欧美| 久久久国际精品| 九九在线精品视频| 91精品国产欧美日韩| 午夜影院在线观看欧美| 色噜噜久久综合| 亚洲美女在线国产| 北条麻妃一区二区三区| 国产亚洲一区二区在线观看| 久久91精品久久久久久秒播| 91精品在线麻豆| 午夜精品久久久久久久蜜桃app| 在线一区二区观看| 亚洲精品你懂的| 91蝌蚪porny成人天涯| 自拍av一区二区三区| 不卡欧美aaaaa| 欧美激情资源网| 成人精品高清在线| 欧美高清在线精品一区| 丁香激情综合国产| 中文字幕二三区不卡| 成人免费的视频| 中文字幕日韩一区二区| 99综合电影在线视频| 国产精品理论片| 92精品国产成人观看免费 | 91玉足脚交白嫩脚丫在线播放| 欧美激情综合五月色丁香| 成人午夜精品在线| 国产精品女上位| 91麻豆免费视频| 亚洲大片一区二区三区| 在线成人免费观看| 久久不见久久见免费视频7| 精品成人私密视频| 高清日韩电视剧大全免费| 中文字幕一区在线观看视频| 一本到高清视频免费精品| 亚洲大片免费看| 精品久久久久久久人人人人传媒| 狠狠色丁香久久婷婷综合_中| 久久九九久精品国产免费直播| 成人晚上爱看视频| 一区二区三区四区在线播放| 欧美日韩一区二区欧美激情| 日韩1区2区3区| 26uuu成人网一区二区三区| 成人午夜看片网址| 亚洲第一av色| 2020国产精品自拍| 97se亚洲国产综合自在线不卡| 亚洲一区二区三区中文字幕 | 91精品在线一区二区| 国产一区二区三区免费观看| 中文字幕电影一区| 欧美视频在线观看一区二区| 久久福利资源站| 成人免费在线播放视频| 欧美日韩电影一区| 国产美女久久久久| 亚洲欧美国产高清| 欧美zozo另类异族| 色综合天天性综合| 免费成人小视频| 综合自拍亚洲综合图不卡区| 欧美一级淫片007| 成人精品在线视频观看| 午夜精品福利视频网站 | 国内精品久久久久影院薰衣草| 中文字幕免费在线观看视频一区| 欧美视频完全免费看| 黑人巨大精品欧美黑白配亚洲| 亚洲少妇30p| 精品卡一卡二卡三卡四在线| av资源网一区| 蜜桃av一区二区在线观看| 自拍偷在线精品自拍偷无码专区| 日韩午夜在线观看| 91亚洲男人天堂| 国产一区二区三区日韩| 亚洲成在人线在线播放| 国产亚洲女人久久久久毛片| 欧美日韩一区二区在线观看视频| 国产麻豆成人精品| 偷窥国产亚洲免费视频| 国产精品久久久久久亚洲毛片| 日韩欧美自拍偷拍| 欧美体内she精高潮| 岛国一区二区在线观看| 久久国产精品色| 亚洲国产一区二区三区青草影视| 国产精品日产欧美久久久久| 日韩欧美不卡在线观看视频| 91国偷自产一区二区三区观看| 国产a精品视频| 久久电影网电视剧免费观看| 午夜精品久久久| 亚洲主播在线观看| 综合欧美亚洲日本| 国产精品丝袜在线| 精品国产精品网麻豆系列| 在线不卡免费av| 欧洲在线/亚洲| 色综合亚洲欧洲| 99在线视频精品| 成人激情黄色小说| 国产精品一二三区| 国产在线精品一区二区不卡了| 午夜精品久久久久影视| 亚洲一区中文在线| 一区二区三区四区在线免费观看| 中文字幕一区不卡| 国产精品美女一区二区三区| 国产亚洲福利社区一区| 欧美不卡视频一区| 日韩欧美不卡一区| 欧美mv和日韩mv的网站| 日韩欧美另类在线|