MFC加载链中的dll失败(MFC LoadString in dll fails)

2019-09-20 09:33发布

我在DLL中的静态功能,使用加载链,从资源加载字符串()。 当我打电话从该DLL这一切功能工作正常。 但是,当我打电话从其他模块(ActiveX控件),此功能加载链失败,错误ERROR_RESOURCE_NAME_NOT_FOUND。 我试图与AFX_MANAGE_STATE宏,但它并没有帮助。 有谁知道什么可能是这里的问题,该如何解决?

Answer 1:

如果字符串是在不同的dll的资源,那么你必须从其他模块设置的资源句柄,使其工作。 尝试使用设置资源句柄AfxSetResourceHandle方法。



Answer 2:

如果不通过句柄到模块实例LoadString则使用默认的资源句柄。 默认情况下,默认的资源句柄为当前模块句柄。 所以,如果你调用LoadString从已必需的字符串,然后模块都工作正常。 如果调用LoadString从其他模块,它无法找到所需的字符串,你会得到错误ERROR_RESOURCE_NAME_NOT_FOUND 。 你可以通过调用覆盖它AfxSetResourceHandle功能。

或者你可以明确地通过传递资源句柄来选择与资源模块LoadString



Answer 3:

请确保你在一个函数的调用开始AFX_MANAGE_STATE以便采取适当的(DLL或EXE)加载资源。 参见: http://msdn.microsoft.com/en-us/library/ba9d5yh5(VS.80).aspx



文章来源: MFC LoadString in dll fails
标签: c++ mfc