DLL创建类型

时间:2013-10-22 19:27:30

标签: c++ vb.net dll mfc

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

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

谢谢!

加里

1 个答案:

答案 0 :(得分:1)

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

自.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 ++ / CLI可以像任何其他托管代码程序集一样引用,而不是使用平台调用。您可以使用它来创建调用非托管的普通旧C ++代码的VB可调用托管接口。在http://msdn.microsoft.com/en-us/library/ms379617(v=vs.80).aspx上有关于MSDN上C ++ / CLI的介绍,以及在此MSDN博客条目中将其用作非托管C ++的垫片的快速示例:http://blogs.msdn.com/b/junfeng/archive/2006/05/20/599434.aspx

相关问题