我有一个带$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”,...)。我完全没有经验,你能否建议一些好的,适当的,更聪明的方法来做到这一点?
答案 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
解决任何问题。