C#如何调用MFC 窗口 DLL

 更新时间:2022年04月20日 09:23:03   作者:lan154633  
这篇文章主要介绍了C#如何调用MFC 窗口 DLL,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

C#调用MFC 窗口 DLL

MFC DLL

创建一个窗口类,加public和AFX_EXT_CLASS

MFC DLL属性

注意

  • MFC的使用:在共享DLL中使用MFC
  • 公共语言运行时支持:公共语言运行时支持(/clr)

在预处理器中添加_AFXEXT

在项目名称.cpp里添加要输出的函数

注意第一行AFX_MANAGE_STATE(AfxGetStaticModuleState())不可少

C# Application

添加引用:

然后将MfcDll.dll和MfcDll.lib放在C# Application里的Debug下

Form1.cs添加:

using System.Runtime.InteropServices;

进行如下调用:

若是报错PInvoke签名不对,CallingConvention=CallingConvention.StdCal改成CallingConvention = CallingConvention.Cdecl

C# 调用 C++ MFC DLL

C++ MFC DLL 的封装

创建 MFC DLL 项目

选择 DLL type 为 Regular DLL using shared MFC DLL

设置项目属性的 Character Set 为 Use Multi-Byte Character Set,若不设置,接收的字符串只有一个字符

方法需要被导出,否则导出名称会被自动命名,具体如下

extern "C" __declspec(dllexport) BOOL AddSignature(char* csFileFullName)
{
    AfxMessageBox(csFileFullName);
    return true;
}

C# 中调用,CharSet须设置为多字节的 Ansi

[DllImport("CppDllTest.dll", EntryPoint = "AddSignature", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
private static extern bool AddSignature(string path);
 
public static bool MyAddSignature(string strMy)
{
    return AddSignature(strMy);
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • c# Bitmap转bitmapImage高效方法

    c# Bitmap转bitmapImage高效方法

    本文主要介绍了c# Bitmap转bitmapImage高效方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • C#统计字符串里中文汉字个数的方法

    C#统计字符串里中文汉字个数的方法

    这篇文章主要介绍了C#统计字符串里中文汉字个数的方法,本文通过正则实现统计出一段字符串里中文字数,需要的朋友可以参考下
    2014-08-08
  • C#实现文章添加内链的方法

    C#实现文章添加内链的方法

    文章添加内链有利于提高读者阅读体验,有利于搜索引擎优化,提升页面浏览量,下面小编通过两种方法说下用c#实现文章添加内链的方法,一起看看吧
    2018-08-08
  • C#添加、读取Word脚注尾注的方法

    C#添加、读取Word脚注尾注的方法

    这篇文章主要为大家详细介绍了C#添加、读取Word脚注尾注的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • C#中的引用类型以及特殊引用类型详解

    C#中的引用类型以及特殊引用类型详解

    本文详细讲解了C#中的引用类型以及特殊引用类型,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • C#实现简单成绩管理系统的完整步骤

    C#实现简单成绩管理系统的完整步骤

    这篇文章主要给大家介绍了关于C#实现简单成绩管理系统的完整步骤,文中通过示例代码介绍的非常详细,对大家的学习或者使用C#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-11-11
  • c#中的常用ToString()方法总结

    c#中的常用ToString()方法总结

    很多类都重写了ToString方法, 导致很多类的tostring到底执行了什么,有哪些参数,都不清楚
    2012-10-10
  • WPF使用DrawingContext实现简单绘图

    WPF使用DrawingContext实现简单绘图

    这篇文章主要为大家详细介绍了WPF如何使用DrawingContext实现简单绘图,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以了解下
    2024-02-02
  • C#校验时间格式的场景分析

    C#校验时间格式的场景分析

    本文通过场景分析给大家讲解C#里如何简单的校验时间格式,本次的场景属于比较常见的收单API,对第三方的订单进行签名验证,然后持久化到数据库,需要的朋友跟随小编一起看看吧
    2022-08-08
  • Unity3D生成一段隧道网格的方法

    Unity3D生成一段隧道网格的方法

    这篇文章主要为大家详细介绍了Unity3D生成一段隧道网格的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08

最新评论