小编Ðаn*_*Ðаn的帖子

使用F#的内置异步支持和*Async()方法

如何使用F#对异步操作类的内置支持,暴露基于事件的异步模式,如WebClient类?

let Download(url : Uri) =
    let client = new WebClient()
    let html = client.DownloadString(url)
    html
Run Code Online (Sandbox Code Playgroud)

当我尝试将其更改为使用"let!"时 在异步块中(如Soma最近的帖子中所述)

let Download(url : Uri) =
    async {
    let client = new WebClient()
    let! html = client.DownloadStringAsync(url)
    return html }
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息:

类型约束不匹配.类型单位与Async <'a>类型不兼容类型'unit'与'Async <'a>类型不兼容

编辑:我真的在询问使用*Async()方法的一般问题,WebClient只是一个简单的例子.微软 "......你应该尽可能使用基于事件的异步模式[而不是BeginFoo()/ EndFoo()]来暴露异步功能......"所以我认为应该有一种简单的方法来消耗任意*来自F#的Async()方法.

f# asynchronous webclient

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

迭代器块到LINQ

我很难找到用于以下迭代器块的正确LINQ语法:

class Program
{
    class Operation
    {
        public IEnumerable<Operation> NextOperations { get; private set; }
    }
    class Item { }

    static Item GetItem(Operation operation)
    {
        return new Item();
    }

    static IEnumerable<Item> GetItems(IEnumerable<Operation> operations)
    {
        foreach (var operation in operations)
        {
            yield return GetItem(operation);

            foreach (var item in GetItems(operation.NextOperations))  // recursive
                yield return item;
        }
    }

    static void Main(string[] args)
    {
        var operations = new List<Operation>();
        foreach (var item in GetItems(operations))
        {
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

也许我所拥有的一切都是如此美好?对于这个特定的代码,yield return在一个显式内部foreach确实是正确的解决方案?

c# linq iterator yield-return

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

与C#5.0异步"全部"?

是的,我知道async,朋友们在幕后做了很多事,但是从各种愿望清单中"清理"项目(WPF支持?)怎么样?或者还有其他C#5.0功能即将推出?

c# c#-5.0

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

如何在win32中的文件上附加数据

我已经搜索过这个但是我找不到我做错了什么.我试图让这个函数在每次调用时附加数据,但它总是这样做一次.如果该文件不存在,则创建一个新文件并在文件上写入一次,如果该文件存在则不执行任何操作(或者可能覆盖)

void WriteToFile (char data[],wchar_t filename[] )
{
    HANDLE hFile;
    DWORD dwBytesToWrite = (DWORD)strlen(data);
    DWORD dwBytesWritten ;
    BOOL bErrorFlag = FALSE;


    hFile = CreateFile((LPCWSTR)filename,            // name of the write
        GENERIC_WRITE,          // open for writing 
        0,                      // do not share
        NULL,                   // default security
        CREATE_NEW,             // create new file only
        FILE_ATTRIBUTE_NORMAL,  // normal file
        NULL);                  // no attr. template

    if (hFile == INVALID_HANDLE_VALUE)
    {
        DisplayError(TEXT("CreateFile"));
        _tprintf(TEXT("Terminal failure: Unable to open file \"%s\" for write.\n"), filename);
        return;
    }


    bErrorFlag = WriteFile(
    hFile, …
Run Code Online (Sandbox Code Playgroud)

winapi file win32gui visual-c++

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

MFC ComboBox不可编辑

我正在填充一个ComboBox,其中包含要从中选择的字符串列表.但另外我可以选择ComboBox并在我自己的字符串中编辑.

如何禁用此行为以便您无法编辑ComboBox?

user-interface mfc visual-c++

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

Conan 创建带有依赖项的包

我正在尝试为 netcdf-c 构建 conan 包。NetCDF 需要 zlib 和 hdf5 作为依赖项,它们都可以通过 conan 中心获得。

我将它们作为要求添加到我的 conanfile.py 中。当运行conan create . testing/build从我的 conanfile.py 创建 conan 包时,CMake 无法构建 netcdf-c。的输出conan create显示 zlib 和 hdf5 已安装,但找不到。当使用 cmake 编译 netcdf-c 时,我必须像这样设置配置:CPPFLAGS="-I${H5DIR}/include -I${ZDIR}/include" LDFLAGS="-L${H5DIR}/lib -L${ZDIR}/lib" --prefix=${NCDIR} --disable-dap。我如何在我的内部设置这些标志conanfile.py

柯南文件.py:

from conans import ConanFile, CMake, tools


class NetcdfcConan(ConanFile):
    name = "netcdf_c"
    version = "4.7.3"
    license = "BSD 3-Clause 'New' or 'Revised' License"
    author = "Arne Osterthun arne.osterthun@dlr.de"

    description = "The Unidata network Common …
Run Code Online (Sandbox Code Playgroud)

cmake netcdf conan

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

Visual Studio 将不再构建 .dll,仅构建 .dll.recipe

我正在尝试用 C++ 为游戏制作一个模组。我正在按照 SDK 教程制作一个简单的示例 mod。我设置了所有首选项并能够成功编译和使用 DLL。作为一个实验,我尝试使函数可以通过 __declspec 访问,但后来意识到外部程序无法访问游戏的内存,所以我放弃了这个想法。

今天我想继续我的 mod 并再次删除那些 __declspec 声明。但现在,如果我尝试编译我的 mod,它只会编译一个 dll.recipe 文件。我什至删除了输出文件夹以确保它正在重建所有内容,但它仍然不会给我一个 DLL 文件。

自从我第一次开始本教程以来,我没有更改首选项或项目设置中的任何内容。

我迷路了。出了什么问题,我需要更改什么才能使其再次构建 DLL 文件?

dll visual-studio visual-c++

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

Visual Studio 2019 未显示 UWP 的设备目标选项

我正在关注 Hololens 2 的 Unity 开发教程。

https://learn.microsoft.com/en-us/windows/mixed-reality/develop/unity/unity-development-overview?tabs=mrtk%2Carr%2Chl2

Unity 构建可以毫无问题地生成 Visual Studio 文件。

使用 Visual Studio 2019 打开时,我在目标下拉列表中没有看到目标选项。Device

但是,当我在 Visual Studio 2017 中打开时,我确实看到了Device目标选项。

Visual Studio 2019 菜单看起来与教程中的完全不同:

请看下面的截图: 在此输入图像描述

Visual Studio 2017 不应该与 Hololens 2 一起使用,当我尝试在 VS2017 中构建时,它给出了一个错误: MSB8020 The build tools for v142 (Platform Toolset = 'v142') cannot be found. 我尝试将项目属性下的构建工具更改为 141 和 140,但奇怪的是仍然给出相同的错误。该教程指出所需的最低版本是 Visual Studio 2019,因此它不应该与旧版本一起使用。

根据上面的教程,这就是 Visual Studio 2019 的样子 在此输入图像描述

我确保设备已连接并且处于开发人员模式。VS2019 好像缺少这个东西

以下是我根据教程安装的所有组件。

任何人都可以帮助找出为什么DeviceRemove Machine选项没有显示在 Visual Studio 2019 下吗?

在此输入图像描述 在此输入图像描述 在此输入图像描述

visual-studio uwp hololens

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

makefile 错误 lib/Scrt1.o 未定义对 `main' 的引用

我看了很多类似的话题,但我无法识别解决方案

我尝试了我的和许多变体。即使在最简单的代码编译下也不起作用。我想跳过小东西...你能帮我吗?


    # Make file for test.c file dependencies external C libraries

    CC = g++
    C = gcc
    FLAGS = -Wextra -g
    INCLUDES = -lm

test: randomArray.o test.o
    $(CC) $(FLAGS) $(INCLUDES) randomArray.o -o test 

test.o: randomArray.o
    $(C) $(FLAGS) $(INCLUDES) -c test.cpp  

randomArray.o: randomArray.c
    $(C) $(FLAGS) $(INCLUDES) -c randomArray.c 
Run Code Online (Sandbox Code Playgroud) 错误信息
make
g++ -Wextra -g -lm randomArray.o -o test 
/usr/bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../lib/Scrt1.o: in function `_start':
(.text+0x24): undefined reference to `main'
collect2: error: ld returned 1 exit status
make: *** [makefile:9: test] Error 1 …
Run Code Online (Sandbox Code Playgroud)

c++ makefile

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

是否可以为可使用点运算符访问的数据类型创建 C++ 函数?

我想创建一个与 int 数据类型关联的函数,可以使用点运算符访问该函数,以便:

int x = 9;
std::string s = x.ToString();
Run Code Online (Sandbox Code Playgroud)

我知道如何使用 std::string 等来执行此操作,但不知道如何使用 int 数据类型。那可能吗?

c++

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