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

DLL创建类型 我需要创建一个C++的非dotnet DLL,它将被VB.NET应用程序调用和使用。我正在尝试确定要创建的DLL的类型。DLL将包含我将要编写的一些类、变量和函数。我知道有三种类型的DLL可以创建:1)常规DLL-静态链接到MFC,2)常规DLL-动态链接到MFC,以及3)使用标准Windows库的DLL,非MFC,c++,vb.net,dll,mfc,C++,Vb.net,Dll,Mfc,我的问题是,链接到MFC的还是使用标准windows库的,哪个是最好的?有人能提出建议并解释MFC和标准库之间的区别吗 谢谢 加里 < P>微软Foundation类(MFC)是Win32 API中比较薄的C++包装,重点是UI编码。您不需要静态或动态地将MFC链接到DLL,除非您正在使用MFC设施,例如容器类,或者试图显示在C++ DLL中用MFC编写的UI。这些都是不太可能发生的情况 自从.NET开始以来,人们一直在从VB.NET调用非托管代码。这里有一个完整的关于这个主题的wiki,还有一

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

谢谢


加里

< P>微软Foundation类(MFC)是Win32 API中比较薄的C++包装,重点是UI编码。您不需要静态或动态地将MFC链接到DLL,除非您正在使用MFC设施,例如容器类,或者试图显示在C++ DLL中用MFC编写的UI。这些都是不太可能发生的情况

自从.NET开始以来,人们一直在从VB.NET调用非托管代码。这里有一个完整的关于这个主题的wiki,还有一个关于CodeProject的实用演练。我建议从那里开始


<>这有点复杂,但是您也可以用C++来编写C++中的托管代码,它可以像任何其他托管代码程序集一样引用,而不是使用平台调用。可以使用它创建VB调用的管理接口,调用非托管的、普通的C++代码。在MSDNDAT上介绍了C++ + CLI,并将它作为非托管C++的一个快速例子,在MSDN博客条目中:

如果您需要从VB.NET中使用它,您应该使用C++ + CLI,它既可以包含托管代码也可以包含非托管代码。那些谈论DLL的人确实太经常提到MFC了。您不太可能想要使用MFC。不能从VB.NET中使用C++类。您应该明确地考虑C++和CLI,更容易从托管程序中使用。进程内COM服务器也可以正常工作。