小编Noa*_*m M的帖子

如何在用户空间程序中使用内核libcrc32c(或相同的函数)?

我想在我自己的用户空间程序中进行一些CRC检查.我发现内核加密lib已经在系统中,并且支持SSE4.2.

我试着直接#include <linux/crc32c.h>用gcc运行-I/usr/src/linux/include/.但是,它不起作用.

libcrc32c什么方法可以使用某种?

c kernel

8
推荐指数
1
解决办法
3231
查看次数

在滚动条上的WPF TreeView中拖放

我们在我们的应用程序和窗口中使用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)

c# wpf treeview drag-and-drop behavior

8
推荐指数
1
解决办法
2393
查看次数

execve - 没有这样的文件或目录?

我在执行时遇到一些问题。我正在尝试制作一个可以像 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)

c linux execve

7
推荐指数
1
解决办法
4万
查看次数

覆盖文本文件vs附加

我想要覆盖文本文件中的数据,但我似乎只能追加它

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)

qt qfile

7
推荐指数
2
解决办法
3万
查看次数

如何在QMediaPlayer中播放音频并删除文件?

我正在使用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)

我正在收到"音频播放"消息,但它没有删除该文件.

请帮我解决这个问题.

qt audio-streaming qmediaplayer

7
推荐指数
2
解决办法
5006
查看次数

如何从qt中的字符串中获取子字符串?

我有一个文本表格:

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)

我想要的是任何文字,直到":"为标签,然后是文本.

有任何想法吗?

c++ regex qstring qt qregularexpression

7
推荐指数
1
解决办法
3万
查看次数

WPF DataGrid绑定到数据表

这让我疯了.我在代码中创建一个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)

data-binding wpf datagrid datatemplateselector

6
推荐指数
1
解决办法
1602
查看次数

使用iTextSharp文本的合理性如何?

有一段代码如下:

 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合理化?有什么方法可以快速做到吗?

c# itextsharp

6
推荐指数
1
解决办法
1万
查看次数

C#日历转换返回System.ArgumentOutOfRangeException

我试图将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)

c#

6
推荐指数
1
解决办法
524
查看次数

如何在WPF中的选项卡控件中添加用户控件

下面的文章展示了如何在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 …

c# wpf tabitem

6
推荐指数
1
解决办法
4559
查看次数