小编dom*_*mer的帖子

使用Delphi中的enum参数调用DLL中的C函数

我有一个用C语言编写的第三方(Win32)DLL,它公开了以下接口:

DLL_EXPORT typedef enum
{
  DEVICE_PCI = 1,
  DEVICE_USB = 2
} DeviceType;

DLL_EXPORT int DeviceStatus(DeviceType kind);
Run Code Online (Sandbox Code Playgroud)

我希望从德尔福那里得到它.

如何在Delphi代码中访问DeviceType常量?或者,如果我应该直接使用值1和2,我应该使用什么Delphi类型的"DeviceType类型"参数?整数?字?

delphi dll enums

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

在 Mono 中,如何获取 Mac (Snow Leopard) 上的 Documents 文件夹的路径?

我正在编写一个 Mono 应用程序,并希望找到 Documents 文件夹的完整路径 - 例如/Users/johnsmith/Documents/。实现这一目标的最佳方法是什么?

macos mono special-folders osx-snow-leopard

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

将属性映射到Entity Framework CTP5中的(不同名称)外键字段

我正在尝试使用Entity Framework CTP5 Fluent API来映射现有数据库.我有以下课程:

public class Shop
{
    public long Id
    {
        get;
        set;
    }
}

public class Sale
{
    public long Id
    {
        get;
        set;
    }

    public virtual Shop Shop
    {
        get;
        set;
    }
}
Run Code Online (Sandbox Code Playgroud)

相应的表称为"商店"和"销售".Sales有一个StoreId外键,指向Stores表中的Id字段.

我正在努力将Sale.Shop.Id映射到表中的StoreId.我无权将其更改为ShopId,因此需要对其进行映射.

在CTP4中,我使用:

modelBuilder.Entity<Sale>().MapSingleType(x =>
    new
    {
        Id = x.Id,
        StoreId = x.Shop.Id
    });
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法:

modelBuilder.Entity<Sale>().Property(x => x.Shop.Id).HasColumnName("StoreId");
Run Code Online (Sandbox Code Playgroud)

但是,它似乎只适用于原始类型.

如何指定此映射?

entity-framework fluent-interface foreign-keys map entity-framework-ctp5

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

是否可以通过其历史编号在spark-shell中重新运行命令?

我希望能够通过它的历史编号运行spark-shell命令.当我输入:history或:h ?,然后我剪切并粘贴命令 - 即使history命令给它一个ID号.我希望能够打字

:61
Run Code Online (Sandbox Code Playgroud)

或者只是重新运行命令的东西.有类似的东西吗?

scala apache-spark

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

大型企业功能性F#开发中常用的架构模型是什么?

我一直在脚本(数据科学工作)中使用F#并开发用于C#的类库.在后一种情况下,我一直在创建具有纯功能代码的模块.

如果我想开始完全用F#开发大型应用程序,我不确定如何构建它.我发现开发的功能风格非常直观,但是它可以扩展到大型企业应用程序吗?例如,使用OO结构然后使用功能代码充实对象更常见吗?

直观地说,感觉就像编写许多函数而没有某种类结构可能会变得笨拙.但我完全愿意接受这可能只是因为在OO项目上工作多年来"洗脑".

据推测,必须有完全可用的Haskell企业应用程序,所以在F#中也许如此.或者在功能上做所有事情都很麻烦,所以F#devs混合搭配.我不知道.

任何人都可以指出我讨论如何将功能范例扩展到大型企业应用程序开发的文章吗?

architecture f# functional-programming

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

如何使用MEF导入多个插件/部件?

我是MEF的新手,我正在尝试使用它来构建一个插件系统,但我仍然坚持第一步.

我正在关注Andrew Whitechapel一篇文章.我已经下载了他的示例代码并运行正常(如果你删除了一个"导出"程序集 - 它们在他的示例中是互斥的 - 并引用了MEF程序集).

该示例说明了导入单个零件.我想导入多个部分(全部基于相同的界面).所以,我更改示例代码如下:

[Import]
// OLD - public Interface.ICalculate Calculate { get; set; }
public IEnumerable<Interface.ICalculate> Calculators { get; set; }

// OLD - Console.WriteLine(
// OLD -     String.Format("{0}", Calculate.Circumference(4)));
foreach (Interface.ICalculate calculator in Calculators)
{
    Console.WriteLine(
    String.Format("{0}", calculator.Circumference(4)));
}
Run Code Online (Sandbox Code Playgroud)

我还为IEnumerable导入了System.Collections.Generic.

关键变化是第一个.据我了解,这将允许我从多个组件导入零件.但是,我收到以下错误:

No valid exports were found that match the constraint
Run Code Online (Sandbox Code Playgroud)

此时我甚至没有添加多个"插件"程序集.仍然只有一个.

为了完整性,这里是他的"插件"类库中的导出定义(我没有触及):

[Export(typeof(Interface.ICalculate))]
public class Calculate : Interface.ICalculate
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我在这里挠头.我搜索了SO和MEF论坛,但可以找到任何启​​发我的东西.

我正在使用VS 2008 SP1(未安装2010 beta)和最新的System.ComponentModel.Composition程序集(2009.26.8.0).

c# mef

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

如何在Material-UI AppBar左侧显示图像,但保留"汉堡包"菜单?

我想在Material-UI AppBar的左侧显示一个图像,但保留"汉堡包"菜单并将图像放在右侧.

可能吗?我可以使用左侧添加图像

<AppBar title="My App"
        iconElementLeft = {<img src='header-logo.png' alt="Logo" />} />;
Run Code Online (Sandbox Code Playgroud)

然而,这取代了"汉堡包"菜单,这对我没用.

我也尝试创建img一个孩子AppBar,但是将图像放在任何iconElementRight元素的右边.

appbar reactjs material-ui

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

为什么我的反应查询突变总是“成功”?

我正在尝试进行反应查询突变(使用 axios,但如果我切换到 fetch API,我会得到相同的行为)。

我是这样设置的。

const mutation = useMutation(
    () => {
      axios.post("http://swapi.dev/api/foobar", {});
    },
    {
      onSuccess: () => {
        console.log("success");
      },
      onError: () => {
        console.log("error");
      },
    }
  );
Run Code Online (Sandbox Code Playgroud)

URL 可以是任何失败的内容。我已经在我正在使用的真实 API 上进行了尝试,返回了 500 和 404 错误。

我按如下方式触发突变。

mutation.mutate();
Run Code Online (Sandbox Code Playgroud)

每次我在控制台中显示“成功”。处理程序onError从不开火。在 Chrome 的网络选项卡中查看时,这些调用会返回预期的错误(并显示控制台错误)。

我正在使用react-query 3.3.6和axios 0.21.1(都是最新的发行版本)。

有人能指出我正确的方向吗?

axios react-query

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