小编Tim*_*ley的帖子

如何在Clojure中创建可分发的应用程序?

分发Clojure应用程序的"最少工作"方法是什么?这与"最佳"方法不同吗?

例如,这是一个简单的"应用程序",我希望能够发送给某人:


(doto (javax.swing.JFrame. "Hello World")
  (.add (javax.swing.JLabel. "Clojure Distributable"))
  (.pack)
  (.show))
Run Code Online (Sandbox Code Playgroud)

我想,无论是否已经安装了Java,它的答案都会有很大的不同.

java clojure

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

可以记住Clojure中的Java反射吗?

类型提示可以在多次反射发生的执行时间上有很大的改进.我对类型提示的理解是它只允许编译器缓存反射查找.缓存可以动态发生吗?或者有什么理由这是不好/不可能的?

clojure

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

如何使WinForms表单作为AvalonDock中的DockableContent工作?

我可以使用WinForms控件,但不能使用整个表单:

        var foo = new DockableContent();
        foo.Title = "Foo";
        foo.Name = "FooName";


        var c = new WindowsAppFramework.RenderTargetUserControl();
        c.Dock = System.Windows.Forms.DockStyle.Fill;
        c.AutomaticUpdateFPS = 60;

        var host = new System.Windows.Forms.Integration.WindowsFormsHost();
        host.Child = c;

        foo.Content = host;
        foo.ShowAsDocument(dockManager);
        foo.Focus();
Run Code Online (Sandbox Code Playgroud)

是否可以使用整个表格?我想在应用程序中使用现有的表单.

c# wpf winforms-interop winforms avalondock

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

TryFind的语法是否更紧凑?

我正在使用Microsoft.FSharp.Core.Collections.FSharpMap,并且经常要编写:

var oo = world.Entity.TryFind(t);
var entity = oo == null ? null : oo.Value;
Run Code Online (Sandbox Code Playgroud)

和类似的.有什么建议更好的风格?

c# f# coding-style

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

可以抑制“AddInProcess.exe 已停止工作”吗?

我试图通过在它自己的进程中启动的 MAF 插件中执行它来沙箱潜在的恶意代码:

    var x = token.Activate<Ix>(new AddInProcess(), AddInSecurityLevel.Internet);
Run Code Online (Sandbox Code Playgroud)

这似乎运行良好,除了在处理 StackOverflowException 时会显示一个对话框:“AddInProcess.exe 已停止工作”。这使得测试变得非常困难

    [TestMethod]
    public void TestStackOverflow() {
        var host = new Host(Environment.CurrentDirectory
            + "/../../../build/pipeline");
        host.Run("foo");
        host.Tick();
        Thread.Sleep(1000);
        host.Monitors.Count.Should().Be(0);
        host.Shutdown();
    }
Run Code Online (Sandbox Code Playgroud)

如果我在 Sleep 到期之前单击“关闭”按钮,则测试成功,否则失败。这表示在按下“关闭”按钮之前该过程不会退出。鉴于我希望进程终止,我如何确保它这样做而不引发此对话框?我尝试将我的操作系统设置为“从不检查解决方案”,但对话框仍然出现。将其设置为“自动检查解决方案”可避免出现对话框,但最多需要 10 秒,这是不可取的……我宁愿避免操作系统设置。

AddInProcess.exe 已停止工作

.net stack-overflow maf

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

使用GDB从核心文件调试C++

GDB似乎总是适用于C程序,但对于C++,我经常得到这些神秘的堆栈:

(gdb) bt
#0  0x08055fa4 in std::runtime_error::what ()
#1  0x080576c8 in std::runtime_error::what ()
#2  0x08057dda in std::runtime_error::what ()
#3  0x080580d2 in std::runtime_error::what ()
#4  0x08058662 in std::runtime_error::what ()
#5  0x08058725 in std::runtime_error::what ()
#6  0x0806ef7a in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*> ()
#7  0x00c0adec in __libc_start_main () from /lib/libc.so.6
#8  0x0804d011 in std::runtime_error::what ()
Run Code Online (Sandbox Code Playgroud)

从表面上看,它没有提供关于问题发生位置的线索.反正有没有从这样的核心文件中获取更多信息 - 或者让程序转储更有用的东西?

c++ gdb exception

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

如何将doseq返回的值放在clojure中的向量中

我是Clojure的新手.我有一张地图矢量:

(def vecmap [{:a "hello"} {:a "hi"} {:a "hey"}])
Run Code Online (Sandbox Code Playgroud)

基本上我想检查地图矢量中是否存在给定值.我用过这个:

(doseq [r vecmap] (get-in r [:a]))
Run Code Online (Sandbox Code Playgroud)

这将获得关键的所有价值:a.但后来我想将所有这些值放在一个向量中,以便我可以使用contains检查向量中是否存在给定值?我怎么能在Clojure中做到这一点?

dictionary vector clojure

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