栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何从C#调用C ++ / CLI?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何从C#调用C ++ / CLI?

您看过C ++ / CLI吗?

让我举一个简短的例子。这是Visual C ++-> CLR->类库项目的源文件。它基本上获取Windows用户名并返回它。

请注意,为了进行编译,您必须进入项目设置并将“其他依赖项”标记为“从父项继承”,因为我们正在使用这些Windows库(kernel32.lib,user32.lib,..)。

// CSCPP.h#pragma once#include "windows.h"using namespace System;namespace CSCPP {    public ref class Class1    {        // TODO: Add your methods for this class here.    public:        String^ GetText(){ WCHAR acUserName[100]; DWORD nUserName = sizeof(acUserName); if (GetUserName(acUserName, &nUserName)) {     String^ name = gcnew String(acUserName);     return String::Format("Hello {0} !", name); }else{     return gcnew String("Error!"); }        }    };}

现在创建了一个新的C#项目,并添加了对第一个C ++ / CLI类库项目的引用。然后调用实例方法。

namespace CSTester{    class Program    {        static void Main(string[] args)        { CSCPP.Class1 instance = new CSCPP.Class1(); Console.WriteLine(instance.GetText());        }    }}

这在我的机器上产生了以下结果:

你好,m3rlinez!

C / CLI基本上是对C 标准的托管扩展。它允许您在C /
CLI项目中利用CLR类和数据类型,并将其公开给托管语言。您可以使用此方法为旧的C

库创建托管包装。有一些奇怪的语法,例如

String^
,定义对CLR String的引用类型。我发现“快速C / CLI-
不到10分钟即可学习C
/
CLI”在这里很有用。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/465334.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号