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

  • 相关阅读:
    七牛云上传博客
    .net 导入Excel
    liunx ln -s 软连接
    dos2unix 命令
    x-csrf-token
    设置git 不提交 修改权限的文件
    nginx 启动、重启、关闭
    命令行导入mysql数据
    mongo 相关命令
    laravel 安装完成后安装 vendor 目录
  • 原文地址:https://www.cnblogs.com/xbit/p/9597938.html
Copyright © 2020-2023  润新知