• 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();//使用指针

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

  • 相关阅读:
    通过kettle数据导入mysql时,空值的处理在插入mysql时,会自动转转换为null值,无法插入
    centos 安装配置kettle
    centos服务器安装配置Postgre9.6
    python 获取随机字母
    defaultdict & Counter
    PIL 安装及使用
    python之yield和Generator
    Win7系统中用anaconda配置tensorflow运行环境
    #基础概念#之tensor
    python 生成特定间隔数列的方法
  • 原文地址:https://www.cnblogs.com/aicro/p/1494386.html
Copyright © 2020-2023  润新知