您的位置:首页 > 编程语言 > C语言/C++

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

2012-07-10 10:14 429 查看
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#代码部分

  运行的效果



原文地址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: