我想在我创建的lib中使用第三方dll的功能。 像这样:
m_hLib = LoadLibrary(L"Bla.dll");
并使用它:
void* fnBla = ::GetProcAddress(m_hLib , "MethodFromBla");
使用相应方法中的一些东西。
现在我的问题是:我可以像这样构建lib然后从exe中使用它的函数吗?
答案 0 :(得分:0)
您正在做的是动态(或运行时)链接,即您明确加载.dll并通过GetProcAddress
解析函数。如果你这样做,那么你不需要.lib文件。
只有在编译时要静态链接.dll时才需要.lib文件。链接器获取.lib文件并根据.lib中的函数信息解析程序中的引用。因此,如果您不打算在编译时链接到.dll,则不需要.lib。您只需确保它与您的应用程序一起发布.dll(在您的情况下为Bla.dll)。
答案 1 :(得分:0)
完全没问题。 exe获取静态链接到lib文件。这意味着lib代码成为exe代码的一部分。现在exe代码动态加载dll:)