我想在我自己的用户空间程序中进行一些CRC检查.我发现内核加密lib已经在系统中,并且支持SSE4.2.
我试着直接#include <linux/crc32c.h>用gcc运行-I/usr/src/linux/include/.但是,它不起作用.
有libcrc32c什么方法可以使用某种?
我们在我们的应用程序和窗口中使用MVVM模式,我们有两个TreeView允许从第一个树中拖动项目并将其放在第二个树上.为了避免代码落后,我们使用行为绑定对ViewModel的拖放.
该行为实现非常类似于此示例,并且像魅力一样工作,有一个错误.
场景是一个比显示它的窗口大的树,因此它有一个垂直滚动条.当选择一个项目并且用户想要滚动时,程序开始拖放(这会阻止实际滚动,因此不是我们想要的).
由于滚动条包含在TreeView控件中,因此这并不奇怪.但是我无法确定鼠标是否在滚动条上方.
将TreeViewItems通过主题使用边框,面板等为代表,所以一个简单的InputHitTest并不像人们想象的那么简单.
有没有人遇到过同样的问题?
如果需要更多代码覆盖问题,我可以粘贴.xaml中的一些行.
编辑
合并Nikolays链接我使用IsMouseOverScrollbar方法解决了问题,如果将来有人遇到此问题,必须通过以下方式更改上面的代码:
private static void PreviewMouseMove(object sender, MouseEventArgs e)
{
if (e.LeftButton != MouseButtonState.Pressed || startPoint == null)
return;
if (!HasMouseMovedFarEnough(e))
return;
if (IsMouseOverScrollbar(sender, e.GetPosition(sender as IInputElement)))
{
startPoint = null;
return;
}
var dependencyObject = (FrameworkElement)sender;
var dataContext = dependencyObject.GetValue(FrameworkElement.DataContextProperty);
var dragSource = GetDragSource(dependencyObject);
if (dragSource.GetDragEffects(dataContext) == DragDropEffects.None)
return;
DragDrop.DoDragDrop(
dependencyObject, dragSource.GetData(dataContext), dragSource.GetDragEffects(dataContext));
}
private static bool IsMouseOverScrollbar(object sender, Point …Run Code Online (Sandbox Code Playgroud) 我在执行时遇到一些问题。我正在尝试制作一个可以像 bash shell 一样运行的 shell,但是我在分叉的子进程执行命令时遇到问题。这是我为孩子准备的。cmd 是一个 char * ,其中包含用户输入的命令。但是,当我运行此程序时,我从 perror 中收到此错误:
execve error: No such file or directory.
Run Code Online (Sandbox Code Playgroud)
我已经用一个简单的 ls 尝试过该程序,它应该使 path="/bin/ls" 并执行它(我已经确认这是我的 ls 命令所在的位置),但它仍然抱怨。我究竟做错了什么?谢谢!
if(pid == 0)
{
// Parse the command
char * word = strtok(cmd, " ");
char path[128] = "/bin/";
strcat(path, word);
// Execute the process
char * newenvp[] = { NULL };
char * newargv[] = { path, NULL };
ret = execve(path, newargv, newenvp);
if(ret == -1)
perror("execve error");
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud) 我想要覆盖文本文件中的数据,但我似乎只能追加它
mFile.open(QFile::ReadWrite)
QTextStream in(&mFile);
QString first = in.readLine(); //discard the headers
QString dataLine = in.readLine(); //headers
QStringList sql_row = dataLine.split("\t"); //first row (sake of proj only 1 row)
if(sql_row[1].isEmpty()) //no user name registered
{
QByteArray user= getenv("USERNAME"); //for windows
if(user.isEmpty())
{
user = getenv("USER"); ///for MAc or Linux
}
dataLine = dataLine.insert(dataLine.indexOf("\t")+ 1,user);
in << first << endl << dataLine << endl;
mFile.flush();
mFile.close();
Run Code Online (Sandbox Code Playgroud) 我正在使用qt5.0.我创建了DLL并将所有音频文件放在dll中.现在我正在从资源和播放创建文件.它工作正常.
但问题是在播放文件后我无法删除该文件并重新创建新文件.
如果我尝试手动删除也会收到错误."使用该文件的其他一些程序".一旦我停止程序然后只能删除该文件.
如何在立即palyback后删除文件.我的代码
player = new QMediaPlayer;
connect(player,SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)),this,SLOT(mediaStatusChanged(QMediaPlayer::MediaStatus)));
QFile file2(QDir::tempPath() + "/temp0.mp3");
if (file2.open(QIODevice::ReadWrite))
{
QFile workFile(":/AUDIO/" + fn +".mp3");
if(workFile.open(QIODevice::ReadOnly))
{
file2.write(workFile.readAll());
workFile.close();
}
file2.close();
}
player->setMedia(QMediaContent(QUrl::fromLocalFile(QDir::tempPath() + "/temp0.mp3")));
player->setVolume(100);
player->play();
Run Code Online (Sandbox Code Playgroud)
void Audio::mediaStatusChanged(QMediaPlayer::MediaStatus state)
{
if(state==QMediaPlayer::EndOfMedia)
{
QFile::remove(QDir::tempPath() + "/temp0.mp3");
qDebug()<<"Audio played";
}
}
Run Code Online (Sandbox Code Playgroud)
我正在收到"音频播放"消息,但它没有删除该文件.
请帮我解决这个问题.
我有一个文本表格:
Last Name:SomeName, Day:23 ...etc
Run Code Online (Sandbox Code Playgroud)
从姓氏:SomeName,我想获得姓氏,并单独SomeName.
我试过使用QRegularExpression,
QRegularExpression re("(?<label>\\w+):(?<text>\\w+)");
Run Code Online (Sandbox Code Playgroud)
但我得到了结果:
QString label = match.captured("label") //it gives me only Name
Run Code Online (Sandbox Code Playgroud)
我想要的是任何文字,直到":"为标签,然后是文本.
有任何想法吗?
这让我疯了.我在代码中创建一个DataGrid,然后将其绑定到数据表.这是动态的,每次创建网格时行和列都会不同.
基本上我遍历我的数据表并为每列创建DataGrid列,如下所示:
private static void CreateDataGridColumns(DataGrid datagrid, Document doc)
{
if (doc == null) return; //return
datagrid.Columns.Clear();
foreach (var item in doc.Keys)
{
var column = new DataGridTemplateColumn
{
Header = item,
CellTemplateSelector = new CustomRowDataTemplateSelector(),
};
datagrid.Columns.Add(column);
}
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在使用自定义数据模板选择器,因此我可以根据其内容以不同方式呈现单元格.
这是模板选择器
public class CustomRowDataTemplateSelector : DataTemplateSelector
{
public override DataTemplate
SelectTemplate(object item, DependencyObject container)
{
FrameworkElement element = container as FrameworkElement;
var presenter = container as ContentPresenter;
var gridCell = presenter.Parent as DataGridCell;
if (element != null && item …Run Code Online (Sandbox Code Playgroud) 有一段代码如下:
var workStream = new MemoryStream();
var doc = new Document(PageSize.LETTER, 10, 10, 42, 35);
PdfWriter.GetInstance(doc, workStream).CloseStream = false;
doc.Open();
var builder = new StringBuilder();
builder.Append("MY LONG HTML TEXT");
var parsedHtmlElements = HTMLWorker.ParseToList(new StringReader(builder.ToString()), null);
foreach (var htmlElement in parsedHtmlElements)
doc.Add(htmlElement);
doc.Close();
byte[] byteInfo = workStream.ToArray();
workStream.Write(byteInfo, 0, byteInfo.Length);
workStream.Position = 0;
return new FileStreamResult(workStream, "application/pdf")
Run Code Online (Sandbox Code Playgroud)
并且有一个问题 - 如何使pdf合理化?有什么方法可以快速做到吗?
我试图将GregorianCalendar转换成波斯日历
这是我的方法:
public static DateTime GetFdate(string _Edate)
{
DateTime fdate = Convert.ToDateTime(_Edate);
GregorianCalendar gcalendar = new GregorianCalendar();
PersianCalendar pcalendar = new PersianCalendar();
DateTime fDate = gcalendar.ToDateTime(
pcalendar.GetYear(fdate),
pcalendar.GetMonth(fdate),
pcalendar.GetDayOfMonth(fdate),
pcalendar.GetHour(fdate),
pcalendar.GetMinute(fdate),
pcalendar.GetSecond(fdate), 0);
return fDate;
}
Run Code Online (Sandbox Code Playgroud)
问题是,它不适用于所有日期:
DateTime dt = GetFdate("2015-07-22 00:00:00.000");
Run Code Online (Sandbox Code Playgroud)
它给出了这个错误:
An unhandled exception of type 'System.ArgumentOutOfRangeException' occurred in mscorlib.dll
Additional information: Year, Month, and Day parameters describe an un-representable DateTime.
Run Code Online (Sandbox Code Playgroud)
但对于其他日期,它的工作原理如下:
DateTime dt = GetFdate("2015-06-29 00:00:00.000");
Run Code Online (Sandbox Code Playgroud) 下面的文章展示了如何在WPF中创建动态选项卡,在每个选项卡中它将只添加一个文本框.
private TabItem AddTabItem()
{
int count = _tabItems.Count;
// create new tab item
TabItem tab = new TabItem();
tab.Header = string.Format("Tab {0}", count);
tab.Name = string.Format("tab{0}", count);
tab.HeaderTemplate = tabDynamic.FindResource("TabHeader") as DataTemplate;
tab.MouseDoubleClick += new MouseButtonEventHandler(tab_MouseDoubleClick);
// add controls to tab item, this case I added just a textbox
TextBox txt = new TextBox();
txt.Name = "txt";
tab.Content = txt;
// insert tab item right before the last (+) tab item
_tabItems.Insert(count - 1, tab);
return tab;
}
Run Code Online (Sandbox Code Playgroud)
http://www.codeproject.com/Articles/493538/Add-Remove-Tabs-Dynamically-in-WPF …