|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
理解动态语言的概念,运做机制,熟悉PHP语法数据 我没看过PHP源码,但它有文件操作函数,我想应当可以吧?其实不可,那末做个CGI来完成也能够,并且自力性好,轻易保护。之前我在BCB情况下做过,思绪以下:(其实相当于通俗的文件读写操作,呵呵)
1、翻开文件
//先用文件体例翻开一个串口(COM1~~COM4中任一个)
HANDLE m_hComm = CreateFile("COM2", GENERIC_READ | GENERIC_WRITE, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
然后就能够用WriteFile()和ReadFile()来对串行口停止读写了,最初记得CloseHandle(m_hComm);把以后翻开的串行口封闭哦。
因为CreateFile()函数采取FILE_FLAG_OVERLAPPED常量,那末注重一下WriteFile()和ReadFile()函数的最初一个参数是OVERLAPPED布局的,读写前需求先初始化该布局:
OVERLAPPED m_ov;
m_ov.Offset = 0;
m_ov.OffsetHigh = 0;
m_ov.hEvent = NULL;
好了,下面已翻开COM2,那末就停止复杂读写:
2、写:
BOOL bResult = true;
char* m_WriteBuffer;
DWORD BytesSent = 0;
strcpy(m_WriteBuffer, "尝尝写出来");
bResult = WriteFile(m_hComm, m_WriteBuffer, strlen((char*)m_WriteBuffer), &BytesSent, m_ov);
3、读:
COMSTAT comstat;//该布局包括通讯装备的形态。
BOOL bResult = true;
DWORD dwError = 0;
DWORD BytesRead = 0;
unsigned char m_ReadBuff;
//入手下手轮回读
for (;;)
{
bResult = ClearCommError(m_hComm, &dwError, &comstat);//更新COMSTAT布局并排除一切毛病
if (comstat.cbInQue == 0)
{
break;//假如读完了就加入for轮回
}
bResult = ReadFile(m_hComm, &ReadBuff, 1, &BytesRead, m_ov);//一次读一名,假如喜好,你也能够一次读n位
......
//在这里放入你的处置模块,归正ReadBuff里是内容(1位),可以兼并起来......
......
}
4、关失落
CloseHandle(m_hComm);
以上思绪可以经由过程函数前往值停止毛病处置,至于各毛病常量的意思可以查书,完全处置是费事点,晓得办法就能够了,只需你是复杂使用,那末复杂读写就足够了。这个文件读写体例还合用于打印口LPT1、LPT2~~~LPTn。在Unix下我没试过,但既然Unix类的操作体系比Windows加倍强调装备文件,信任在Unix、Linux下用文件体例读写COM口更复杂更通用吧。。。?仍是这句:晓得办法就行。该出手时就出手。^_^
不外假如在Unix、Linux下作为CGI来用的话,能够要设置编译后CGI文件的权限,本人试哦。
小试一下身手,大概是没问题了,那么交给你个任务,做个留言本吧,这和HELLO WORLD有一比啊!^_^,同是新手面临的第一道关。 |
|