当前位置:编程学习 > C#/ASP.NET >>

求助啊

HANDLE hCom;  //createFile函数返回的句柄//打开的是端口一
hCom = CreateFile("COM4",GENERIC_READ|GENERIC_WRITE,0, NULL,OPEN_EXISTING, 0, NULL);
打开串口却说实参const char和形参LPCWSTR不符合,到底哪出问题了。。。 --------------------编程问答-------------------- CreateFile(L"COM4",GENERIC_READ|GENERIC_WRITE,0, NULL,OPEN_EXISTING, 0, NULL);
我猜的


--------------------编程问答-------------------- 代码太少了   给多一点啊 --------------------编程问答-------------------- 是不是宽字符的原因,LPCWSTR是指向宽字符串的长指针,把实参宽字符化一下试试。 --------------------编程问答-------------------- 这个真的可以,但是MessageBox( "打开端口一时出现了错误 ");中的参数也说有这个问题就不懂了

引用 1 楼  的回复:
CreateFile(L"COM4",GENERIC_READ|GENERIC_WRITE,0, NULL,OPEN_EXISTING, 0, NULL);
我猜的
--------------------编程问答-------------------- CreateFile((LPCWSTR)"COM4",GENERIC_READ|GENERIC_WRITE,0, NULL,OPEN_EXISTING, 0, NULL);
我猜的 --------------------编程问答-------------------- MessageBox(L"打开端口一时出现了错误 ");
我猜的


--------------------编程问答-------------------- // 串口c++.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include   <afx.h>
int _tmain(int argc, _TCHAR* argv[])
{
char buff[200];
CString str;
//然后打开串口,开始通信
HANDLE hCom;  //createFile函数返回的句柄//打开的是端口一
hCom = CreateFile(L"COM4",GENERIC_READ|GENERIC_WRITE,0, NULL,OPEN_EXISTING, 0, NULL);
if(hCom == NULL)
{
MessageBox( "打开端口一时出现了错误 ");
}

DCB dcb;
GetCommState(hCom,&dcb);
dcb.BaudRate = CBR_9600;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
dcb.fBinary = TRUE;
dcb.fParity = TRUE;
dcb.fOutxDsrFlow = false;
dcb.fDtrControl = DTR_CONTROL_DISABLE;
dcb.fOutxCtsFlow = false;
dcb.fRtsControl = RTS_CONTROL_DISABLE;
if(false==SetCommState(hCom,&dcb))
{
MessageBox("11");
}
//设置读写操作,将缓冲里面的数据写入到串口里面
BOOL isWrite = false;
DWORD length = 100;
COMSTAT ComStat;
DWORD dwErrorFlags;
ClearCommError(hCom,&dwErrorFlags,&ComStat);
isWrite = WriteFile(hCom,buff,length,&length,NULL);
if(isWrite == false)
{
MessageBox("写入数据时出现了错误");
}


引用 2 楼  的回复:
代码太少了   给多一点啊
--------------------编程问答-------------------- 这个不行啊。。。。
引用 6 楼  的回复:
MessageBox(L"打开端口一时出现了错误 ");
我猜的
--------------------编程问答-------------------- messagebox的也不行,我都不晓得为什么。。。
引用 5 楼  的回复:
CreateFile((LPCWSTR)"COM4",GENERIC_READ|GENERIC_WRITE,0, NULL,OPEN_EXISTING, 0, NULL);
我猜的
--------------------编程问答-------------------- AfxMessageBox


--------------------编程问答-------------------- 说是未定义AfxMessageBox。。。。。
引用 10 楼  的回复:
AfxMessageBox
--------------------编程问答-------------------- 大虾,现在还有一个错误是错误error C1189: #error :  Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d] d:\vs\vc\atlmfc\include\afx.h,知道是啥错误么。。



引用 10 楼  的回复:
AfxMessageBox
--------------------编程问答-------------------- unicode,加个L就行了,或者你用MessageBoxA,CreateFileA
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,