假设我有
在main.exe中,
int main()
{
if(1)
{
functionA();
}
else
{
functionB();
}
}
假设我没有dllB而只有dllA,我仍然想启动应用程序main.exe。
有没有办法可以在main.exe启动时绕过DLL检查,这样我仍然可以在没有dllB的情况下启动应用程序?
答案 0 :(得分:2)
不要将DLL指定为依赖项。然后,您可以使用此代码动态加载函数:
HMODULE libA = LoadLibrary("dllA.dll"); // NULL if load failed
HMODULE libB = LoadLibrary("dllB.dll"); // NULL if load failed
void (*functionA)(void) = libA ? GetProcAddress(libA,"functionA"):NULL;
void (*functionB)(void) = libB ? GetProcAddress(libB,"functionB"):NULL;
答案 1 :(得分:1)
至少在Windows上,您可以使用Loadlibrary
在运行时明确加载dlledit:如果找不到DLL或无法加载
,则返回NULL