草庐IT

redis-cli

全部标签

c# - 如何从 C# 访问 C++/CLI 中的类?

我正在用C#编写一个GUI工具来解析和显示另一个用C编写的程序的数据输出。为了解析数据,我需要知道在许多C头文件中指定的数据结构。因此,我需要将这些C头文件合并到我的C#项目中。我的问题是:1)经过一些研究,我得出结论,最好的方法是在我的解决方案中创建一个新的C++/CLI项目,将C头文件导入到这个新项目中,编写一些充当瘦包装器的C++/CLI类对于C头文件中定义的数据结构,然后从C#代码中引用C++/CLI包装器类。这是最好的方法,还是有更好的方法?2)我遇到了一个引用问题。这是我用来说明问题的简化代码:C++/CLI项目中的原始C头文件#defineABC0x12345C++/CL

c++-cli - C++/CLI-问题: Is there an equivalent to the C# "is" keyword or do I have to use reflection?

我在MSDN的某个地方读到过,与C#的“is”关键字等效的是dynamic_cast,但这并不完全等效:它不适用于值类型或泛型参数。例如在C#中我可以写:voidMyGenericFunction(){objectx=...if(xisT)...;}如果我尝试“等效的”C++/CLI:genericvoidMyGenericFunction(){objectx=...if(dynamic_cast(x))...;}我收到编译器错误“errorC2682:cannotuse'dynamic_cast'toconvertfrom'System::Object^'to'T'”。我唯一能想到的

c# - 如何在 C# 应用程序中使用 C++/CLI

我正在尝试从我的C#应用程序(通过C++/CLI)调用我的C++库。我按照thisquestion中的示例进行操作(针对我的具体应用)。我的应用程序的设置是:项目1:C++项目(我将其编译为DLL)项目2:C++项目(我的CLR包装器;只是上面示例的头文件;引用项目1)项目3:C#项目(引用项目2)不幸的是,当我实际去访问我的C#应用程序中的CLR包装器对象时,我收到以下错误:Thetypeornamespacename'YourClass'couldnotbefound(areyoumissingausingdirectiveoranassemblyreference?)是我的项目设

c# - C# 编译器和 C++/CLI 编译器的输出之间的差异

我有一个WPF应用程序,它在大型数据集之间进行大量匹配,目前它使用C#和LINQ来匹配POCO并在网格中显示。随着包含的数据集数量和数据量的增加,我被要求查看性能问题。我今晚测试的假设之一是,如果我们将一些代码转换为C++CLI,是否会有实质性差异。为此,我编写了一个简单的测试来创建一个List有5,000,000个项目,然后做一些简单的匹配。基本的对象结构是:publicclassCsClassWithProps{publicCsClassWithProps(){CreateDate=DateTime.Now;}publiclongId{get;set;}publicstringNa

c# - 托管 C++ (C++/CLI) 与 C#/VB.NET

我广泛使用C#,但是,我正在开始一个项目,我们的客户希望所有代码都用C++而不是C#编写。该项目将是托管(.NET4.0)和nativeC++的混合体。由于我总是更喜欢C#而不是C++来满足我的.NET需求,我想知道在使用C#和托管C++之间是否存在我可能没有意识到的重要区别?非常感谢任何对此的见解。编辑查看维基百科的托管C++代码表明新规范是C++/CLI,并且“托管C++”已弃用。更新标题以反射(reflect)这一点。 最佳答案 C++/CLI是一种成熟的.NET语言,就像其他.NET语言一样,它在托管上下文中运行良好。正如在

c# - C++/CLI 比 C# 快吗

C++/CLI比C#快吗?在哪种类型的操作中速度更快? 最佳答案 不一定。但是,C++/CLI消除了C#中存在的非性能处理方式的大部分语法糖分(例如装箱)。此外,C++/CLI允许您与非托管代码进行更干净的互操作,实际上允许您混合托管/非托管代码,这是一个性能关键环境可能是有益的。编辑:有关一些差异,请参阅此帖子:http://msdn.microsoft.com/en-us/library/ms379617(VS.80).aspx 关于c#-C++/CLI比C#快吗,我们在StackO

c# - ASP.NET Core 2 - 多个 Azure Redis 缓存服务 DI

在ASP.NETCore2中,我们可以像这样添加一个AzureRedis缓存:services.AddDistributedRedisCache(config=>{config.Configuration=Configuration.GetConnectionString("RedisCacheConnection");config.InstanceName="MYINSTANCE";});那么用法是这样的:privatereadonlyIDistributedCache_cache;publicMyController(IDistributedCachecache){_cache=c

室友看世界杯我在学redis事务

    世界杯是足球界的盛世,不知道大家看了做完韩国晋级16强的感想是什么。日韩两国我们想必不太陌生了,我这里就不过多言语了。有一天想我们的国家什么时候也能在世界杯的赛场上再次重现,那真的就是乐开花了,我到时候必然手捧🍺在电视甚至有可能现场观看。    作为一个篮球爱好者,足球可以说是踢得很少,甚至都没怎么踢过。以前的我不知道“越位”什么?也不知道“积分”是怎么算的?在以往的我只听过梅西、C罗,今年我看集锦看到了巴西舞者内马尔,这里必须要夸赞一下,虽然对手有点气人,但是作为观众的我是非常喜欢看到在绿茵场地上看到那绝妙的舞蹈。    通过朋友的了解,我对足球也产生了浓厚的兴趣,看到有比赛的时候很

c# - 如何将共享的 C# NuGet 依赖项添加到 C++/Cli 项目?

上下文:具有2个程序集Cs和Cpp的VisualStudio解决方案。Cs是一个C#/.net45dllCpp是一个C++/Clidll,一个用/clr编译的C++dll。我有一些依赖项是来自nuget.org的纯C#项目。我使用作者提供的原始包。将它们添加到Cs项目可以正常工作,但不能添加到Cpp。如何将C#包添加到C++项目中?因为它是C++/Cli,我可以很容易地使用.net对象,我使用例如在C#库的C++库中。但不知何故nuget只允许我选择C#项目来添加C#依赖项,而不是C++/clr项目。 最佳答案 在您的C++/CLI

c# - Any CPU dependent on C++/CLI dependent on native C dll (any cpu for c++/cli)

这是我的问题。我正在用C#包装一个Cdll。为此,我首先编写了一个C++/CLI包装器。nativeC库链接到C++/CLI包装器。(C++/cli项目中的链接器属性)。现在是这样组织的:-nativeC.lib:x86和64位。1个包含2个项目的解决方案:链接到原生C.lib的C++/CLI包装器项目C#项目引用C++/CLI项目我的问题是我需要C#来定位“任何CPU”。但此选项在C++/CLI中不可用,因为它直接编译为native代码。我的解决方案是:-在x86中编译C++/CLI包装器,然后更改配置并编译为64位。编译时,我想告诉它根据平台采用哪个dll。即:如果以64位编译,则