【发布时间】:2013-06-13 17:07:28
【问题描述】:
我有一个 C# 应用程序,它使用 Assembly.LoadFrom 动态加载其他 dll。
如果 dll 是受 MFC 支持的托管 cpp 并且任何包含此类 afxwin.h,则此方法将失败。
要重现此行为,您只需使用向导创建一个新的托管 cpp dll。将 MFC 支持标志添加到配置中。除非您没有将任何 MFC 标准包含在 stdafx.h 文件中,否则 Assembly.LoadFrom 不会失败。如果将#include "afxwin.h" 放入stdafx.h 文件中,Assembly.LoadFrom 将失败! (即 dll 为空!)
有什么线索???
谢谢, 出租车
【问题讨论】:
-
+1 表示不使用程序集标签。 :)
-
对于依赖于非托管 DLL 的混合模式程序集,LoadFrom() 很可能会失败。 Windows 没有太多机会找到这样的 DLL,因为它不太可能存储在与 EXE 相同的目录中或 PATH 上。 空 DLL 听起来不太可能。
-
程序集都在同一个目录中。没有 #include "afxwin.h" 的空 dll 加载良好,添加包含,没有其他内容让加载失败。
-
@Devolus: mov ebx,声望;公司 ebx; :)