当前位置: 首页 > news >正文

Windows 8 C#调用C++编写的Windows运行时组件

 

Windows运行时组件是Windows 8里面通用的公共库,它可以使用C++,C#或者VB来编写,不过你的Windows 8 metro是用什么语言编写都可以调用无缝地调用Windows运行时组件。

下面通过一个C#编写的Windows 8项目来调用一个用C++编写的Windows运行时组件。

创建一个Windows运行时组件:

编写如下的代码:

复制代码
 
#include "pch.h"
#include "WinRTComponent.h"

using namespace CppWinRTComponentDll2;

int CalculatorSample::Add(int x, int y)
{
    return x+y;
}
复制代码

 头文件

复制代码
 
#pragma once

using namespace Windows::Foundation;

namespace CppWinRTComponentDll2
{

    public ref class CalculatorSample sealed
    {
    public:
        int Add(int x, int y);

    };
}
 
复制代码

在C#编写的项目中调用Windows运行时组件的C++方法

添加Windows运行时组件

UI部分

复制代码
 
<Page
    x:Class="TestWinRTCSDemo.MainPage"
    IsTabStop="false"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:TestWinRTCSDemo"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
        <StackPanel>
            <TextBox x:Name="txtX" HorizontalAlignment="Center" Height="45" Width="258"></TextBox>
            <TextBlock   Text="+" HorizontalAlignment="Center"  Height="45" Width="258" FontSize="14" FontWeight="Bold"/>
            <TextBox x:Name="txtY" HorizontalAlignment="Center" Height="45" Width="258"></TextBox>
            <Button Content="调用WinRT方法来相加" HorizontalAlignment="Center" Click="Button_Click_1" ></Button>
            <TextBox x:Name="txtAddResult" HorizontalAlignment="Center" Height="45" Width="258"/>
        </StackPanel>
    </Grid>
</Page>
 
复制代码

C#代码部分

  运行的效果

原文地址


本文转自Work Hard Work Smart博客园博客,原文链接:http://www.cnblogs.com/linlf03/archive/2012/07/10/2584129.html,如需转载请自行联系原作者

相关文章:

  • SQL Server 索引基础知识(1)--- 记录数据的基本格式
  • 计算器--超级low版
  • [原创]JSLint-Toolkit v1.2 - Update with qooxdoo1.3
  • SylixOS 异步工作队列
  • XenApp6.0 部署之 五发布应用程序
  • 关于浏览器兼容处理的几种方式
  • sysinternals利器系列之——AccessChk
  • JS中的事件分类
  • 最NB的打字练习程序——计算机达人成长之路(39)
  • linux 上配置tomcat、mysql 开机启动
  • 在常规临床工作中生物制剂治疗银屑病的耐受性和安全性:一项103例意大利患者的研究...
  • java第八次作业:课堂上发布的前5张图片(包括匿名对象、单例模式恶汉式、自动生成对象、args[]数组使用、静态关键字)...
  • Angular4 模板式表单用法以及验证
  • vsftpd服务器安装(只限下载)
  • 通过实例模拟ASP.NET MVC的Model绑定机制:简单类型+复杂类型
  • 5、React组件事件详解
  • JS函数式编程 数组部分风格 ES6版
  • Linux快速复制或删除大量小文件
  • mysql中InnoDB引擎中页的概念
  • Nacos系列:Nacos的Java SDK使用
  • Zepto.js源码学习之二
  • 将 Measurements 和 Units 应用到物理学
  • 入手阿里云新服务器的部署NODE
  • 思维导图—你不知道的JavaScript中卷
  • 由插件封装引出的一丢丢思考
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • !$boo在php中什么意思,php前戏
  • #vue3 实现前端下载excel文件模板功能
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • (13)Hive调优——动态分区导致的小文件问题
  • (poj1.3.2)1791(构造法模拟)
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (转) Android中ViewStub组件使用
  • .NET Core中Emit的使用
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET 解决重复提交问题
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .NET实现之(自动更新)
  • @GlobalLock注解作用与原理解析
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • [autojs]autojs开关按钮的简单使用
  • [BUG] Hadoop-3.3.4集群yarn管理页面子队列不显示任务
  • [C++] 默认构造函数、参数化构造函数、拷贝构造函数、移动构造函数及其使用案例
  • [GN] 设计模式——面向对象设计原则概述
  • [Hadoop in China 2011] 蒋建平:探秘基于Hadoop的华为共有云
  • [hdu 1247]Hat’s Words [Trie 图]
  • [java基础揉碎]关系运算符(比较运算符)逻辑运算符赋值运算符三元运算符运算符的优先级
  • [leetcode]Clone Graph
  • [Linux] Ubuntu install Miniconda
  • [MFC] VS2013版本MFC工程移植到VC6.0上
  • [opencvsharp]C#基于Fast算法实现角点检测
  • [paper] lift,splat,shooting 论文浅析