首页 > 编程语言 > 详细

UWP C# 调用 C++/CX

时间:2018-01-08 16:22:21      阅读:376      评论:0      收藏:0      [点我收藏+]

创建一个UWP项目

技术分享图片

然后创建一个通用C++运行时项目

技术分享图片

右键点击C++项目,添加一个C++类

技术分享图片

在头文件中定义一个类

#pragma once


namespace ImageFactoryRT
{
    public ref class ImageSRC sealed
    {
    private:
        Windows::Foundation::Collections::IVector<int>^ colors;
        int width;
        int height;
    public:
        ImageSRC();
        void LoadImageSRC(Windows::Foundation::Collections::IVector<int>^ mcolors, int mwidth, int mheight);
    public:
        // int = byte[A] byte[R] byte[G] byte[B]
        property Windows::Foundation::Collections::IVector<int>^ Colors
        {
            Windows::Foundation::Collections::IVector<int>^ get()
            {
                return colors;
            };
            void set(Windows::Foundation::Collections::IVector<int>^ s)
            {
                colors = s;
            };
        }
        property int Width
        {
            int get()
            {
                return width;
            };
            void set(int s)
            {
                width = s;
            };
        }
        property int Height
        {
            int get()
            {
                return height;
            };
            void set(int s)
            {
                height = s;
            };
        }
    };
    ImageSRC::ImageSRC()
    {
    }
    void ImageSRC::LoadImageSRC(Windows::Foundation::Collections::IVector<int>^ mcolors, int mwidth, int mheight)
    {
        this->Colors = mcolors;
        this->Width = mwidth;
        this->Height = mheight;
    }
}

在cpp文件中引入

#include "pch.h"
在UWP项目中引入C++项目

技术分享图片

技术分享图片

在UWP C#中就可以直接使用 C++中定义的类了

    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
            ImageFactoryRT.ImageSRC imageSRC = new ImageSRC();
            List<int> list = new List<int>();
            list.Add(3);
            list.Add(2);
            list.Add(1);
            imageSRC.LoadImageSRC(list, 3, 2);
            imageSRC.Width = 1;
            int h = imageSRC.Height;
        }
    }

 

这样做的主要目的是 通过 [标准C++] ==> [C++/CX] ==> [UWP C#] 可以封装 标准的C++类库 来使用。通过win10商店审核。

UWP C# 调用 C++/CX

原文:https://www.cnblogs.com/gaobw/p/8243053.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!