Qt5:QTextEdit为(LPVOID lpBuffer,DWORD dwBytesToWrite)

时间:2018-02-12 16:49:09

标签: c++ windows qt

我有一个带$ErrorActionPreference = "Stop" Set-StrictMode -Version Latest $sourceDir = "c:\temp\source" $targetDir = "c:\temp\target" $skipFiles = @( "skip.me", "and.me" ) Get-ChildItem -Path $sourceDir -Recurse | ForEach-Object { # ignore folders if ($_.PSIsContainer) { return } # skip this file? if ($skipFiles -contains $_.Name) { Write-Verbose "Skipping '$_.FullName'" return } # create target folder when needed $path = $_.DirectoryName -replace "^$([RegEx]::Escape($sourceDir))",$targetDir if (!(Test-Path $path)) { Write-Verbose "Creating target path '$path'..." New-Item -Path $path -ItemType Directory } # copy the file Write-Verbose "Copying '$_.FullName' to '$path'..." Copy-Item $_.FullName $path | Out-Null } QTextEdit字段的GUI,我想使用在textDataToSend函数中输入的数据,该函数接受fWrite个参数。

现在我用:

(LPVOID lpBuffer, DWORD dwBytesToWrite)

dataToSend[0] = ui->textDataToSend->toPlainText().toUInt(&bStatus,16); sendData(dataToSend,1); 就像:

sendData

我可以发送一个字节。

我想使用的数据是长度可变的十六进制字符串(如“aa0011”,“1122334455”,...)。我完全没有经验,你能否建议一些好的,适当的,更聪明的方法来做到这一点?

1 个答案:

答案 0 :(得分:1)

首先从文本编辑中获取QString

QString textEditString = ui->textDataToSend->toPlainText();

如果手中有QString,则可以获得“缓冲区”和“缓冲区大小”,如下所示。

//First get the byte array from the string
QByteArray bArray = textEditString.toLatin1();

//Get the size of the string in bytes
int length = bArray.size(); 

//Get the string buffer
char *tBuffer = bArray.data();

现在将这些值传递给您的发送数据

sendData(tBuffer, length);

任何LPVOID只是一个虚空指针。 fWrite应该能够tBuffer解决任何问题。