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文件夹下对应位置。

  • 相关阅读:
    Oracle数据库链Database links
    记录中文字符的烦恼
    oracle游标应用难点 sys_refcursor 和 cursor(转)
    C# Delegate类
    Oracle_merge into 中 using 后的查询表如果有参数的情况
    C# partial
    Excel快捷键
    时间格式的问题
    Ref_cursor
    .Net 引用命名空间
  • 原文地址:https://www.cnblogs.com/xbit/p/9597938.html
Copyright © 2011-2022 走看看