zoukankan      html  css  js  c++  java
  • VS C++ C# 混合编程

    创建C++ DLL

    注意,32bit和64bit之间不兼容

    1. 创建普通dll工程
    2. 设置Properties -> Configuration Properties -> General -> Project Defaults -> Common Language Runtime Support = [Common Language Runtime Support (/clr)]
    3. 设置turn off "/permissive-": Properties -> Configuration Properties -> C/C++ -> Language -> Conformance mode = No
    4. 修改debug|release设置后,Properties也要记得修改。

    托管类中需要用到Bitmap类时,需要添加引用,右键当前工程-> Add(添加)引用 -> Assemblies(程序集) -> Framework(框架) -> 勾选System.Drawing,就可以在托管C++中调用Bitmap类了。

    System::Drawing::Bitmap ^clrClass::getImage(double scale)
    {
        System::Drawing::Bitmap ^img = gcnew System::Drawing::Bitmap(5,5);
        img->SetPixel(1,1, System::Drawing::Color::FromArgb(255,0,0));
        return img;
    }

     C#中调用

    引用DLL: 工程 -> References -> Add References -> Browse -> [Browse] -> 添加C++工程生成的DLL

    正常使用即可,典型使用如下。

    clrClass cc = new clrClass();
    // 后面就可以用C#的方式使用了

     注意:如果C++工程的dll引用了其他dll,需要把二级引用的dll手动加到bin文件夹下对应位置。

  • 相关阅读:
    zoj 3233 容斥原理 + 双条件
    bzoj 1038 瞭望塔 半平面交 + 最小值 枚举
    linux 常用命令
    Vue路由
    luffycity项目开发
    Vue组件化开发
    Vue对象提供的属性功能
    Vue快速入门
    Django-DRF(路由与扩展功能)
    Django-DRF(视图相关)
  • 原文地址:https://www.cnblogs.com/xbit/p/9597938.html
Copyright © 2011-2022 走看看