C#如何调用MFC 窗口 DLL

作者:lan154633 时间:2022-04-14 09:57:51 

C#调用MFC 窗口 DLL

MFC DLL

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

C#如何调用MFC 窗口 DLL

MFC DLL属性

C#如何调用MFC 窗口 DLL

注意

  • MFC的使用:在共享DLL中使用MFC

  • 公共语言运行时支持:公共语言运行时支持(/clr)

C#如何调用MFC 窗口 DLL

在预处理器中添加_AFXEXT

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

C#如何调用MFC 窗口 DLL

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

C# Application

添加引用:

C#如何调用MFC 窗口 DLL

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

Form1.cs添加:

using System.Runtime.InteropServices;

进行如下调用:

C#如何调用MFC 窗口 DLL

若是报错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);
}

来源:https://blog.csdn.net/u011896623/article/details/78531406

标签:C#,MFC,窗口,DLL
0
投稿

猜你喜欢

  • C#打印日志的方法总结

    2022-02-08 22:32:00
  • java实现简单的小超市程序

    2023-05-17 00:04:29
  • C#调用和实现WebService,纯手工打造!

    2023-12-12 14:58:30
  • Java中关于二叉树层序遍历深入了解

    2023-07-26 07:06:09
  • 解决C#中Linq GroupBy 和OrderBy失效的方法

    2022-11-21 00:25:11
  • 彻底搞定堆排序:二叉堆

    2022-12-06 23:24:15
  • Android开发中自定义 editText下划线

    2023-03-30 13:40:35
  • C#通过重写Panel改变边框颜色与宽度的方法

    2021-07-09 05:57:52
  • Android中获得正在运行的程序和系统服务的方法

    2023-01-19 21:05:42
  • java多线程-同步块实例讲解

    2022-06-21 02:10:41
  • Android SQLite数据库的增 删 查找操作

    2023-02-09 09:47:25
  • C# 操作XML文档 使用XmlDocument类方法

    2023-06-11 04:21:14
  • Druid基本配置及内置监控使用_动力节点Java学院整理

    2022-12-16 20:55:58
  • Android Service详解及示例代码

    2021-12-24 05:44:17
  • Android百度地图实现搜索和定位及自定义图标绘制并点击时弹出泡泡

    2023-08-30 21:30:38
  • c#读写注册表示例分享

    2022-06-26 13:08:45
  • Spring Data JPA框架快速入门之自定义Repository接口

    2023-05-23 03:49:48
  • C#飞机打字游戏的代码示例(winform版)

    2021-09-10 17:43:17
  • 关于Android实现简单的微信朋友圈分享功能

    2021-07-01 16:49:49
  • 详解SpringBoot初始教程之Tomcat、Https配置以及Jetty优化

    2023-10-25 23:34:02
  • asp之家 软件编程 m.aspxhome.com