创建一个UWP项目

UWP C# 调用 C++/CX

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

UWP C# 调用 C++/CX

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

UWP C# 调用 C++/CX

在头文件中定义一个类

#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++/CX

UWP C# 调用 C++/CX

在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++类库 来使用。

相关文章:

  • 2021-08-04
  • 2021-12-17
  • 2021-04-06
  • 2022-12-23
  • 2022-12-23
  • 2021-04-17
  • 2021-11-08
  • 2021-05-31
猜你喜欢
  • 2022-12-23
  • 2021-12-10
  • 2021-09-11
  • 2021-11-10
  • 2021-10-23
  • 2022-02-22
  • 2022-12-23
相关资源
相似解决方案