【发布时间】:2013-05-31 12:53:06
【问题描述】:
说明
我正在尝试创建一个项目,该项目将使用 VS2010 创建一个 DLL 文件(.COM 托管 DLL)。此 DLL 将在 VB 中加载。另外,我将在我的 dll 中使用 STL。
已经尝试过
1 - Created Visual C++ -> win32 -> Win32 project -> Next -> selected DLL -> 勾选 export Symbols -> Finish。这将是一个托管的 .COM DLL 吗?我该如何检查?此 DLL 将在 64 位操作系统上作为 64 位 dll 还是作为 x86 dll 运行?
2 - 创建 Visual C++ -> MFC-> MFC DLL -> 使用共享 MFC DLL 的常规 DLL 这将是一个托管的 .COM DLL 吗?我该如何检查?这个 DLL 会在 64 位操作系统上作为 64 位 dll 还是 x86 dll 运行?
此外,还有其他两个选项 Regular DLL With MFC statically linked 和 MFC extension DLL。我不喜欢第一个,因为它使将来升级我的 dll 变得更加困难,而且我不知道第二个做什么?
我可以使用其他选项来创建 DLL 吗?
【问题讨论】:
-
“.COM 托管 DLL”到底是什么意思? STL 是本机 C++,所以不清楚你在追求什么。也许与其问如何创建 DLL,不如描述问题并问如何解决。
-
我是 DLL 的初学者。 “.COM 托管 DLL”是指使用 Visual c++(托管/非托管?)创建并且可以由 VB(托管)加载的 DLL。此 DLL 将在内部使用 STL(矢量和映射)。这个 DLL 有一些事件。加载此 DLL 的应用程序可以订阅这些事件。因此,要订阅事件,需要注册 dll(regsrv32.exe 用于注册 COM 组件)。我为事件订阅添加了“.COM”一词。如果有更好的方法可以分享给我吗?
标签: visual-studio dll