C#如何调用MFC 窗口 DLL
作者:lan154633 时间:2022-04-14 09:57:51
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);
}
来源:https://blog.csdn.net/u011896623/article/details/78531406
标签:C#,MFC,窗口,DLL
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
解决@RequestBody搭配@Data的大坑
2022-08-29 18:25:35
C# 定时器定时更新的简单实例
2023-01-08 12:45:50
C#简单数字图像处理程序
2022-03-07 05:16:31
![](https://img.aspxhome.com/file/2023/0/89780_0s.jpg)
java实现文件压缩成zip的工具类
2022-09-25 09:13:17
springboot动态调整日志级别的操作大全
2023-11-03 19:31:12
![](https://img.aspxhome.com/file/2023/6/92656_0s.png)
分析Java中为什么String不可变
2023-06-05 23:33:25
![](https://img.aspxhome.com/file/2023/9/85949_0s.png)
SpringBoot Pom文件依赖及Starter启动器详细介绍
2022-10-08 19:30:20
![](https://img.aspxhome.com/file/2023/7/80987_0s.png)
在Spring使用iBatis及配置讲解
2021-07-06 20:07:39
Java语言中4种内部类的超详细讲解
2022-02-23 18:08:10
java解析excel文件的方法
2023-05-13 15:53:44
一篇文章带你搞定JAVA注解
2023-03-15 05:22:23
![](https://img.aspxhome.com/file/2023/2/63012_0s.png)
Java获取随机数的3种方法
2022-08-04 02:51:01
java读取ftp中TXT文件的案例
2022-07-07 20:10:11
![](https://img.aspxhome.com/file/2023/1/101771_0s.jpg)
Android中使用ShareSDK集成分享功能的实例代码
2022-02-12 06:19:53
![](https://img.aspxhome.com/file/2023/5/91045_0s.png)
java实现学生信息管理系统
2023-11-11 08:22:35
c#调用qq邮箱smtp发送邮件修改版代码分享
2023-04-03 11:11:31
C#实现的JS操作类实例
2023-11-13 05:19:48
Android编程实现应用强制安装到手机内存的方法
2023-11-09 14:00:40
Mybatis动态SQL foreach标签用法实例
2023-12-25 07:42:46
简单谈谈java的异常处理(Try Catch Finally)
2021-08-01 12:40:02