【问题标题】:DLL Creation TypesDLL 创建类型
【发布时间】:2013-10-22 19:27:29
【问题描述】:

我需要创建一个由 VB.net 应用程序调用和使用的 C++ 非 dotnet DLL。我正在尝试确定要创建的 DLL 的类型。 DLL 将包含我将要编写的一些类、变量和函数。我知道可以创建三种类型的 DLL:1) 常规 DLL - 静态链接到 MFC,2) 常规 DLL - 动态链接到 MFC,以及 3) 使用标准 Windows 库的 DLL,非 MFC。

我的问题是,哪个最好用,一个链接到 MFC,还是一个使用标准 Windows 库?有人可以提出建议并解释 MFC 和标准库之间的区别吗?

谢谢!

加里

【问题讨论】:

  • 如果你需要从VB.Net使用它,你应该使用C++/CLI,它可以包含托管和非托管代码。
  • 您一直在阅读错误的 MSDN 文章,那些谈论 DLL 的文章确实经常提到 MFC。您不太可能想要使用 MFC。 C++ 类不能从 VB.NET 中使用。您绝对应该考虑 C++/CLI,它更容易从托管程序中使用。进程内 COM 服务器也能很好地工作。

标签: c++ vb.net dll mfc


【解决方案1】:

Microsoft 基础类 (MFC) 是围绕 Win32 API 的相对较薄的 C++ 包装器,重点是 UI 编码。您不需要将 MFC 静态或动态链接到您的 DLL,除非您正在使用 MFC 工具(例如其容器类)或尝试在您的 C++ DLL 中显示用 MFC 编写的 UI。这些都是不太可能发生的情况。

自从 .NET 出现以来,人们就一直在从 VB.NET 调用非托管代码。在http://www.pinvoke.net/ 上有一个关于该主题的完整维基,在 CodeProject 上也有一个有用的演练,http://www.codeproject.com/Articles/6243/Step-by-Step-Calling-C-DLLs-from-VC-and-VB-Part-2。我建议从那里开始。

它有点复杂,但您也可以使用 C++/CLI 编写 C++ 中的托管代码,这些代码可以像任何其他托管代码程序集一样被引用,而不是使用平台调用。您可以使用它来创建调用非托管的普通旧 C++ 代码的 VB 可调用托管接口。在 MSDN 上 http://msdn.microsoft.com/en-us/library/ms379617(v=vs.80).aspx 上介绍了 C++/CLI,并在此 MSDN 博客条目中使用它作为非托管 C++ 的 shim 的快速示例:http://blogs.msdn.com/b/junfeng/archive/2006/05/20/599434.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多