我编写了一个应用程序,将数据发送到 COM 端口并接收返回的数据。
发送效果很好,但接收效果不佳。多行和只读文本框中的新行字符不正确。
截屏:

我的接收代码是:
void serialPort_DataReceived(object s, SerialDataReceivedEventArgs e)
{
byte[] data = new byte[_serialPort.BytesToRead];
_serialPort.Read(data, 0, data.Length);
string str = System.Text.Encoding.UTF8.GetString(data);
textBox3.Text = textBox3.Text + str;
textBox3.SelectionStart = textBox3.TextLength;
textBox3.ScrollToCaret();
}
Run Code Online (Sandbox Code Playgroud)
在打开端口之前,我将 New Line 属性设置为 \r\n:
_serialPort.NewLine = "\r\n";
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题?
如何在 C++/WinAPI 中获取网络适配器发送/接收的字节数?
我的编程平台是Windows。
我在声明的资源中有版本信息:
100 VERSIONINFO
FILEVERSION 1,0,0,2
PRODUCTVERSION 1,0,0,2
FILEOS VOS_NT
FILETYPE VFT_APP
{
BLOCK "StringFileInfo"
{
BLOCK "000004b0"
{
VALUE "FileDescription", "My application"
VALUE "FileVersion", "1.0.0.2"
VALUE "InternalName", "app.exe"
VALUE "LegalCopyright", "Copyright © 2012 by David."
VALUE "OriginalFilename", "app.exe"
VALUE "ProductName", "app"
VALUE "ProductVersion", "1.0.0.2"
VALUE "Assembly Version", "1.0.0.2"
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 0x0000 0x04B0
}
}
Run Code Online (Sandbox Code Playgroud)
我这样得到版本信息:
HRSRC hResInfo;
HGLOBAL hResData;
LPCVOID pRes;
UINT uLen;
VS_FIXEDFILEINFO *lpFfi;
hResInfo = FindResource(hInst, MAKEINTRESOURCE(100), RT_VERSION);
MessageBox(0, "FindResource", 0,0);
hResData = …Run Code Online (Sandbox Code Playgroud)