Com AxImp.exe生成的dll文件少于预期

Com AxImp.exe生成的dll文件少于预期,com,activex,atl,Com,Activex,Atl,我创建了一个名为M的MFC activeX控件 并创建了另一个名为N的ATL项目 M引用N,意味着M使用N中的一些类 M->N 然后我将所有文件编译为.ocx文件,并对M.ocx运行AxImp.exe,如下所示: AxImp M.ocx/out:AxM.dll 它只生成AxM.dll和M.dll,而我认为它还应该生成N.dll 我做错了什么 谢谢。不,它只生成两个互操作文件。只有嵌入在M.ocx中的类型库才重要,我们看不到它。如果N也有类型库,则需要在其上运行Tlbimp.exe。“使用某些

我创建了一个名为M的MFC activeX控件

并创建了另一个名为N的ATL项目

M引用N,意味着M使用N中的一些类

M->N

然后我将所有文件编译为.ocx文件,并对M.ocx运行AxImp.exe,如下所示:


AxImp M.ocx/out:AxM.dll

它只生成AxM.dll和M.dll,而我认为它还应该生成N.dll

我做错了什么


谢谢。

不,它只生成两个互操作文件。只有嵌入在M.ocx中的类型库才重要,我们看不到它。如果N也有类型库,则需要在其上运行Tlbimp.exe。“使用某些类”非常模糊,但听起来不像是COM依赖,听起来像是链接依赖。使用M.ocx上的Dumpbin.exe/imports进行检查,如果您看到N back,那么您知道只有在操作系统能够找到N back的情况下才能加载M。这是一个棘手的问题。@HansPassant,谢谢你的回答,实际上有一个案例
AxImp M.ocx
生成了2个以上的DLL,但由于代码策略的原因,我无法将示例文件公开,所以我试图通过创建示例来找出原因,但仍然无法使其正常工作。我甚至无法将COM项目中的接口引用到ActiveX问题中。以上是我的经验项目。正在尝试从MFCAc引用ATLProject1中的IMathcon接口,并最终将MFCAc引用到SimpleSharpConsoleApp项目中。很抱歉,我是ATL的新手:-(