zoukankan      html  css  js  c++  java
  • c# dll在mfc/win32中的引用步骤

    通过实验,我发现以下方法可以在vs2005下编译通过,不过在运行时有时仍然出现了不确定现象。具体原因有待继续排查。

    一、使用 /clr 编译 MFC 可执行文件或规则 DLL

    1、打开“项目属性”对话框,方法是右键单击“解决方案资源管理器”中的项目并选择“属性”。

    2、展开“配置属性”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“公共语言运行库支持”设置为“公共语言运行库支持 (/clr)”。

    3、在相同的窗格中,确保将“MFC 的使用”设置为“在共享 DLL 中使用 MFC”。

    4、在“配置属性”下,展开“C/C++”旁边的节点并选择“常规”。请确保将“调试信息格式”设置为“程序数据库 /Zi”(而不是“/ZI”)。

    5、在“配置属性”下,选择“C/C++”,然后选择“代码生成”。请确保将“运行时库”设置为“多线程调试 DLL (/MDd)”或“多线程 DLL (/MD)”之一。

    二、在代码引用需要的dll

    1.把自己用c#编译过的dll放置到输出文件一起;

    2.右键项目名->属性->常规属性->引用->添加新引用->“浏览”属性页->找到自己需要的 dll->确定;

    3.代码修改

    (一定在 #include "stdafx.h"之后!)

    #using "mscorlib.dll"

    #using "..\\debug\\DownloaFiles.dll" //换成需要的dll文件

    using namespace CGistarMath;//换成dll中类所使用的namespace

    三、在dll函数调用代码前加入#pragma managed

    这是manage和unmanage混合编程在MFC下的一种实现方式。

    四、在dll函数调用代码后加入#pragma unmanaged

    五、必须使用c++\clr代码,即在mfc里声明变量用
    class ^ a = gcnew class();//声明指针
    a->funcName();//使用指针

    希望对大家有用,如果知道了怎么使不确定因素解决,请告诉我。

  • 相关阅读:
    HttpClient访问的策略Policy
    Fiddler 工具使用技巧
    设置Chrome浏览器User-Agent
    anaconda Script file Scriptspip-script.py is not present
    anaconda3+ paddleOCR安装使用
    anaconda 创建虚环境 必须指定python版本
    pyqt 启动GUI前启动子进程,退出GUI后退出子进程
    pyqt 扩展QsciScintilla disable mouse select
    pyqt designer下添加QsciScintilla 控件
    rdkit 读mol时保留H原子
  • 原文地址:https://www.cnblogs.com/aicro/p/1494386.html
Copyright © 2011-2022 走看看