小编nic*_*man的帖子

当url是blob url时,html5下载属性不起作用

我们正在创建一个chrome扩展程序来下载视频,目前我有这个功能:

function downloadvideo(video)
{
    const url = URL.createObjectURL(video.captureStream());
    const aelem = document.createElement('a');
    document.body.appendChild(aelem);
    aelem.setAttribute("href",url);
    aelem.setAttribute("download","video.mp4");
    aelem.click();
    //URL.revokeObjectURL(url);
}
Run Code Online (Sandbox Code Playgroud)

这里的video参数是一个html5视频元素,我正在使用,caputreStream因为一些网站(特别是youtube)使用的blob网址明显被撤销所以我创建了一个新的Blob网址MediaStream.

上述功能作为视频onloadeddata事件的一部分执行.

显示对话框并且文件名正确但是当我点击"保存"时,chrome说"失败:找不到文件".

那么如何让它真正起作用呢?

顺便说一句,我试图对ajax做反对,url但chrome拒绝了这条消息:"只有方案http,https,chrome,chrome-extension支持交叉源:"3.

javascript download html5-video

18
推荐指数
1
解决办法
1020
查看次数

OnModelCreating上的modelBuilder.Configurations.Add和modelBuilder.Entity

我刚刚开始研究实体框架代码的第一种方法,我在下面写了两种方法,两种方法都运行正常.

请让我知道这两种方法背后的核心概念是什么,应该遵循什么?

方法1: 使用EntityTypeConfiguration

public class BlogsMap : EntityTypeConfiguration<Blog>
    {
        public BlogsMap(string schema)
        {
            ToTable("BLOG");
            HasKey(t => t.BlogId);
            Property(t => t.BlogId).HasColumnName("BLOGID");
            Property(t => t.Name).HasColumnName("NAME");
            Property(t => t.Url).HasColumnName("URL");
        }

    }


public class BlogContext : DbContext
    {
        public BlogContext(string name)
            : base(name)
        {
        }

        public IDbSet<Blog> BLOG { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
           modelBuilder.Configurations.Add(new BlogMap(string.Empty));
        }
    }
Run Code Online (Sandbox Code Playgroud)

方法2:

public class Blog
    {
        public int BlogId { get; set; }
        public string Name { get; set; }
        public string …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework-6

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

在C#winforms中使用C++库

我正在尝试在OpenTK中使用SPARK粒子系统.
我的项目包含文件夹中的头文件,只有两个头文件只包含其他文件,文件夹也包含源文件.
到目前为止,我已尝试了几种方法,但对我来说没有任何效果,这些都是我尝试过的:

1. P/Invoke

这是在你的C++项目中编写一些代码,它构建了dll,然后DllImport在C#中使用了属性(显然需要using System.Runtime.InteropServices;).我发现这种方法不适用于类很难,它只适用于类外的方法,因此这种方法无效.

2.包装类

这是编写一个包含指向原始类的指针的类.我发现实际上困难来自于从托管代码调用非托管代码(没有自动内存管理),这就是为什么需要包装类,这就是为什么你必须重新定义方法的签名并让它们调用原始方法.

当然这有一些优点,比如以更好的方式命名类和方法,但是库是如此之大,所以你可以看到它的努力.

3.使用自动包装机:

这是一种很好的方法,特别是对于xInterop ++.我对此非常乐观,并认为它会起作用,它说"给我.h文件和dll,我将为你构建.NET dll".很好,但这样做会给出错误; 简单来说:

您必须确保.h文件和dll是一致的,并且该库在C++项目中工作.

我已经尝试了几件事来处理这个错误:

  1. 知道dll包含什么:我从谷歌搜索和从这个网站学到的很难,所以我的尝试失败了.
  2. 将头文件放在一个新项目中并构建它:收到错误,修复它们,然后构建项目,它运行良好.我将带有头文件的dll文件上传到xInterop.然后它告诉已发现的类,但随后会说没有找到任何东西!我搜索并了解到编译器必须通过使用以下语句标记所需的每个类来告知dll需要暴露哪些类:_declspec(dllexport).
  3. 我使用Find&Replace来修复这个东西并再次尝试并显示了类,所以我启动了xInterop并收到了同样的错误.
  4. 它要求确保dll正常工作.验证文件有效后,我启动了程序并生成了链接器错误.

这是我被卡住的地方,这些是我得到的链接器错误:

main.obj:错误LNK2019:未解析的外部符号"void __cdecl SPK :: swapParticles(类SPK :: Particle&,类SPK :: Particle&)"(?swapParticles @ SPK @@ YAXAAVParticle @ 1 @ 0 @ Z)在函数"private:void __thiscall SPK :: Pool :: swapElements(class SPK :: Particle&,class SPK :: Particle&)"(?swapElements @?$ Pool @ VParticle @ SPK @@@ SPK @@ AAEXAAVParticle @ 2 @ 0 @ Z)main.obj:错误LNK2001:未解析的外部符号"unsigned int SPK :: randomSeed"(?randomSeed @ …

c# c++ dll language-interoperability wrapper

8
推荐指数
2
解决办法
1510
查看次数

锡兰哪里会用到noop

我正在玩这种美丽的语言,看到了一个叫做的功能noop.

正如文档所说,它是一个无效的函数!

那么为什么我会使用一个什么都不做的函数呢?是在组装中添加"Nop"(用于管道等)但是这样太低级了不是吗?

ceylon

6
推荐指数
2
解决办法
115
查看次数

为什么tail递归gcd比使用rubinius循环更快

我有这两个gcd函数的实现:

def gcd1(a,b)
  if a==b
    a
  elsif a>b
    if (a%b)==0
      b
    else
      gcd1(a%b,b)
    end
  else
    if (b%a)==0
      a
    else
      gcd1(a,b%a)
    end
  end
end
def gcd2(a,b)
  if(a==b)
    return a
  elsif b>a
    min,max=a,b
  else
    min,max=b,a
  end
  while (max%min)!=0
    min,max=max%min,min
  end
  min
end
Run Code Online (Sandbox Code Playgroud)

函数gcd1是尾递归的,而gcd2使用while循环.

我已经验证了rubinius通过对因子函数进行基准测试来进行TCO,只有基数函数,基准测试显示递归版本和迭代版本是"相同的"(我使用的是基准测试版).

但是对于上述情况,基准测试显示gcd1比gcd2快至少两倍(递归速度是迭代速度的两倍,甚至更快).

我用来进行基准测试的代码如下:

Benchmark.ips do |x|
  x.report "gcd1 tail recursive" do
    gcd1(12016,18016)
  end
  x.report "gcd2 while loop" do
    gcd2(12016,18016)
  end
  x.compare!
end
Run Code Online (Sandbox Code Playgroud)

结果 :

Warming up --------------------------------------
 gcd1 tail recursive    47.720k i/100ms
     gcd2 while loop    23.118k i/100ms
Calculating ------------------------------------- …
Run Code Online (Sandbox Code Playgroud)

ruby performance tail-recursion rubinius

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

以异步模式运行的 Racket Web 服务器(基于事件)

我计划使用 Racket 及其网络服务器开发基于 REST 的服务。我的一项要求是在异步模式下运行的网络服务器(基于非阻塞事件)。

是否有配置或自定义 Racket 网络服务器以在异步模式下运行的示例?

我浏览了 Racket 文档,但无法弄清楚如何执行此操作。

webserver racket

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

组件图依赖与组装

我很难理解UML组件图中依赖和汇编(球和套接字)之间的区别.

我google了很多,只发现了这个相对的问题:uml组件图在程序集和具有依赖性的接口之间的区别

但我真的不明白这个问题的答案,我特别想问:

  1. "定义级别"和"实例级别"是什么意思?我知道只有一个图表,有两个吗?
  2. 是否有两个,你能给我一个有"依赖"和"汇编"的有效例子,并解释为什么第一个是"依赖"而第二个是"汇编"?

请注意,我不是在询问我在网上发现的任何特定图像,我在这里一般都会问,我也想要Uml 2 :).

我更喜欢例子,因为我不理解UML中的所有单词,我也更喜欢这些例子有些现实,不是"A和B",而是例如"Order and Person".

我的问题的目标是绘制我们将给教授的毕业项目的组件图:).

uml modeling component-diagram

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

没有标题栏的移动表单

我有一个没有标题栏的窗体.我想用鼠标拖动它.在互联网上搜索后,我找到了移动表单的代码:

protected override void WndProc(ref Message m)
{
    switch (m.Msg)
    {
        case 0x84:
            base.WndProc(ref m);
            if ((int)m.Result == 0x1)
                m.Result = (IntPtr)0x2;
            return;
    }
base.WndProc(ref m);
}
Run Code Online (Sandbox Code Playgroud)

但是它有一个问题:它只在没有任何控件覆盖的表单区域上运行.例如,如果我使用标签或组合框,我无法通过单击它们来移动表单.
我怎么解决这个问题?

.net c# winforms

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

过滤数据表中的列

我有一个包含多列的数据表。我想过滤我要做的列:

newDatableName= OldDt.ToTable(false,"col1","col2");
Run Code Online (Sandbox Code Playgroud)

现在假设,我想以动态方式指定列名称,即将所有列名称放入字符串中,然后执行以下操作:

string colnames= "col1,col2";
 newDatableName= OldDt.ToTable(false,colnames);
Run Code Online (Sandbox Code Playgroud)

我尝试了上述方法,但不起作用。我什至尝试:

string colname= "\"col1\",\"col2\"";
Run Code Online (Sandbox Code Playgroud)

但它会将列名称的字符串视为一列,并给出错误,指出该列不存在。

任何帮助表示赞赏。

c# datatable

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

matlab sum(XY)vs sum(X) - sum(Y)

如果我们有两个矩阵,X并且Y都是二维的,现在在数学上我们可以说:sum(X-Y)=sum(X)-sum(Y).

哪个在Matlab中更有效?哪个更快?

performance matlab matrix

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