从 .NET C# DLL 更新 MFC 对话框中的进度条

Posted

技术标签:

【中文标题】从 .NET C# DLL 更新 MFC 对话框中的进度条【英文标题】:Updating progress bar in MFC dialog from .NET C# DLL 【发布时间】:2019-05-07 04:29:11 【问题描述】:

我已经看到了这个article,但我需要反过来,发现它很混乱。

我有一个 C# DLL,它正在执行一项使用互操作自动执行 Outlook 的冗长任务。

这个 DLL 方法是从我在 MFC 中的 CDialog 函数调用的。

我的对话框上有一个进度条控件。是否可以从 .NET DLL 更新对话框中的此进度条?

我的问题有意义吗?

【问题讨论】:

MFC是exe还是dll? @santosh MFC 是 exe 【参考方案1】:

文章Calling an Exported Function in an EXE from Within a DLL将帮助您仅从dll调用exe函数。

但是,您可以创建named mutex,以同步进程或 dll 进度。可以从 C++ 和 C# 访问命名互斥锁。 Creating named Mutex in c# exe and Accessing it a dll in c++.

【讨论】:

谢谢。我尝试在您提供的第一个链接中编译示例,但无法编译:Command line error D8016: '/ZI' and '/Gy-' command-line options are incompatible。我正在 Visual Studio 2019 中编译。 另外,我不明白如何使用命名互斥锁来做我想做的事。 @AndrewTruckle 更改属性设置 C/C++ ➔ 代码生成 ➔ 启用从“否”到“是”的函数级链接以解决第一条评论中提到的错误。 好的,我得到它来编译。现在我必须看看我是否可以在我需要更新进度条的实际工作场景中使用它。

以上是关于从 .NET C# DLL 更新 MFC 对话框中的进度条的主要内容,如果未能解决你的问题,请参考以下文章

将视觉样式应用于从 C# .net 程序调用的 MFC 对话框

包装 MFC 应用程序(目标移动设备)以创建 dll 以在 c#.NET 中使用以进行互操作

从 mfc 扩展 dll 导出的无模式对话框不显示

从应用程序对话框访问的 MFC 自定义键盘 DLL

从 MFC DLL 显示对话框

从 Visual C# 2019 创建的 DLL 可以在 MFC 6.0 中使用吗?