标签: managed

如何将非托管双精度转换为托管字符串?

从托管C++,我调用一个非托管C++方法,它返回一个double.如何将此双精度转换为托管字符串?

c++ double unmanaged managed

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

托管/字节代码和非托管/本机代码之间有什么区别?

有时很难描述"我们的程序员"可能认为对非程序员和管理类型来说很简单的一些事情.

所以...

您如何描述托管代码(或Java字节代码)与非托管/本机代码之间的区别?

bytecode unmanaged managed

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

将本机c ++类导入CLI项目

我正在创建一个CLI项目来包装现有的本机c ++项目(同一个解决方案文件中的两个独立项目).我想在托管类中包含一个指向本机类的指针作为成员.从我在线阅读的文档中,如果托管代码和非托管代码在同一个项目中,则可以完成此操作.如果本机代码和托管代码位于不同的项目中,那么唯一的选择是在两个项目之间使用dllimport和dllexport属性,并将本机代码类函数导出为静态函数.

这些是我唯一的选择,还是可以在两个单独的项目之间导入和导出整个本机类?我问,因为这决定了我如何设计我的托管包装器.提前致谢.

mixed-mode c++-cli managed wrapper visual-c++

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

一起调试托管和非托管代码

我的主要启动项目是c ++.该解决方案还涉及托管的c#代码.当我调试时 - 我只在非托管部分上有断点(在托管断点上它指出:"断点当前不会被命中.无效的文件行"

我检查了引用,发现那里有dll和pdb.

会是什么呢?

c# c++ debugging unmanaged managed

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

C++/CLI:在.cpp中定义所有内容或在.h或.cpp中分开?

把所有美学考虑放在一边......哪种替代方案更受欢迎?我主要关注的是构建时间,保持代码可读性和易于保持,当然,它编译.

我已经看到大多数书籍都在.cpp文件中定义了所有内容,一个la C#,但是......这会不会加剧构建时间?好吧,很可能是非托管C++基本原理不适用于托管C++/CLI,但是请考虑一个转换场景:非托管C++的项目类被移动到C++/CLI项目中,整个怪物构建正常,并且坐着在那里等待一个勇敢的家伙(我,咳咳)将非托管类转换为托管类,当然,逐步并使用后备测试工具.

我有点离题了,但我想让你在回答时考虑我的异常情况(托管和非托管交互).

unmanaged c++-cli managed project-organization

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

具有二维数组的 PInvoke 返回结构

我有一个在 Win32 DLL 中定义的结构,如下所示:

typedef struct matrix
{
  double** data;
  int m;
  int n;
} Matrix;
Run Code Online (Sandbox Code Playgroud)

还有一个功能:

Matrix getMatrix(void);

Matrix getMatrix()
{
    Matrix mat;

    mat.m = 2;
    mat.n = 2;

    mat.data    = (double**)  malloc (sizeof(double*) * 4);

    mat.data[0] = (double* )  malloc (sizeof(double) * 2);
    mat.data[1] = (double* )  malloc (sizeof(double) * 2);

    mat.data [0][0]=1;
    mat.data [0][1]=2;
    mat.data [1][0]=3;
    mat.data [1][1]=4;

    return mat;
}
Run Code Online (Sandbox Code Playgroud)

如果我P/Invoke从 C# 应用程序使用,如何捕获此函数的返回值

c++ pinvoke interop managed marshalling

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

这个.tlh文件是否正确,如果没有,那么我该如何生成正确的文件呢?

我试图从非托管C++代码调用.NET 4.0 DLL.

我按照Atul Mani的Code Project文章中的说明进行操作.

我构建了.NET dll,并遵循所有步骤,包括使用regasm注册它.

接下来,我创建了一个非托管C++项目,并在.cpp文件的开头添加了这一行:

#import "D:\PathToMyCSharpProject\bin\Debug\com.DeviceServices.tlb" rename ("EOF","adoEOF") no_namespace named_guids raw_interfaces_only
Run Code Online (Sandbox Code Playgroud)

当我构建C++项目时,在D:\ MyCPlusPlusProject\Debug中创建了一个.tlh文件.

接下来,我添加了CodeProject文章建议的代码,该文章尝试从C#库创建指向对象的指针.

CoInitialize(NULL);   //Initialize all COM Components

// <namespace>::<InterfaceName>
MyCSharpNamespace::IMyCSharpInterfacePtr pMyCSharpInterfacePtr;
Run Code Online (Sandbox Code Playgroud)

"MyCSharpNamespace"是我在C#项目中使用的命名空间.

当我构建C++项目时,我现在得到一个编译错误:

错误2错误C2653:'MyCSharpNamespace':不是类或命名空间名称

还有其他错误,因为它无法识别IMyCSharpInterfactPtr.

所以,我查看了.tlh文件,内容如下:

// Created by Microsoft (R) C/C++ Compiler Version 10.00.40219.01 (6478e0c7).
//
// MyCPlusPlusProjectPath\debug\com.deviceservices.tlh
//
// C++ source equivalent of Win32 type library MyCSharpProjectPath\bin\Debug\com.DeviceServices.tlb
// compiler-generated file created 05/27/14 at 11:52:16 - DO NOT EDIT!

#pragma once
#pragma pack(push, 8)

#include <comdef.h>

//
// Forward …
Run Code Online (Sandbox Code Playgroud)

c# c++ com unmanaged managed

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

如何在单次更新中标记为读取通过EWS获取的所有电子邮件?

我按照MSDN上的EWS托管API示例在我的Exchange邮箱帐户中查找所有未读电子邮件.

我后来浏览了每个找到的项目,以便将它们放入我需要返回的列表中,同时获取每条消息的正文IsRead=true并按如下方式更新每个消息:

Folder.Bind(Service, WellKnownFolderName.Inbox);

SearchFilter sf = new SearchFilter.SearchFilterCollection(LogicalOperator.And,
    new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false));
//ItemView limits the results to numOfMails2Fetch items
FindItemsResults<Item> foundItems = Service.FindItems(WellKnownFolderName.Inbox, sf,
    new ItemView(numOfMails2Fetch));

if (foundItems.TotalCount > 0)
{
    List<EmailMessage> emailsList = new List<EmailMessage>(foundItems.TotalCount);
    foundItems.Items.ToList().ForEach(item =>
    {
        var iEM = item as EmailMessage;
        emailsList.Add(iEM);
        // update properties
        iEM.IsRead = true;
        iEM.Update(ConflictResolutionMode.AutoResolve);
    });
    // fetches and assign the bodies of each email
    Service.LoadPropertiesForItems(emailsList,PropertySet.FirstClassProperties);
    return emailsList;
} else return null;
Run Code Online (Sandbox Code Playgroud)

是否可以IsRead=true在一个请求中更新所有找到的项目?即不逐一更新它们=更好的性能和连贯的逻辑.

c# email managed exchangewebservices

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

在构建托管 ODP.NET 简介之后,我收到此错误“无法识别的配置部分 oracle.manageddataaccess.client”。

在本教程之后,构建 ODP.NET 托管驱动程序应用程序简介

在主题“使用 TNS_ADMIN 属性进行连接”中,当我运行时,出现“无法识别的配置部分 oracle.manageddataaccess.client”错误。

oracle managed odp.net configuration-files

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

Kubernetes 中基于 URL 和 Path 的速率限制

我需要对部署在 Kubernetes 集群 (EKS) 上的应用程序实施速率限制(基于 URL 和路径)。

我正在寻找一种涉及最少脚本的托管方式,并且确实提供了一个界面,通过该界面来管理不同应用程序的速率限制。

该系统应该能够在企业级别准确工作。

有人可以建议我遵循的路径/工具/框架来实现它。

managed rate-limiting kubernetes amazon-eks

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