вы можете динамически загружать DLL-файл, когда вам это нужно,
в c# вы можете использовать Net Отражение (если dll разработана в. Net framework), например:
var DLL = Assembly.LoadFile(@"path\to\your.dll");
Type t = DLL.GetType("myAssembly.ClassName");
CustomType result = t.InvokeMember("methodName", BindingFlags.InvokeMethod, null, t, new object[] { @"method argument" });
если упомянутая dll не разработана под. Net framework, но вы вынуждены использовать. Net framework (для получения дополнительной информации см. this ):
int hModule = LoadLibrary(@"path\to\your.dll");
if (hModule == 0) return false;
IntPtr intPtr = GetProcAddress(hModule, "yourmethod_PTR");
если вы хотите использовать в c / c ++, вы можете использовать следующий код:
HINSTANCE hGetProcIDDLL = LoadLibrary("path\\to\\your.dll");
if (hGetProcIDDLL == NULL) {
std::cout << "dll not found" << std::endl;
}
int a = function_to_call("arguments");
ПРИМЕЧАНИЕ: если вы хотите загрузить dll из неизвестного источника, я рекомендую использовать c / c ++, потому что в c / c ++ вы можете проще управлять своей памятью и освободить все ресурсы после загрузки dll,