, , . , , , , , - DLL , DLL ( ).
1 - , :
void PrepareManagedCode()
{
AppDomain^ currentDomain = AppDomain::CurrentDomain;
currentDomain->AssemblyResolve += gcnew ResolveEventHandler(currentDomain_AssemblyResolve);
}
. FinalPath, , :
Assembly^ currentDomain_AssemblyResolve(Object^ sender, ResolveEventArgs^ args)
{
sender;
if (args->Name->Length >= 8 && args->Name->Substring(0, 8) == L"mscorlib")
{
return Assembly::Load(args->Name->Substring(0, args->Name->IndexOf(L",")) + L".dll");
}
String^ finalPath = nullptr;
try
{
finalPath = gcnew String(ourAssemblyPath) + args->Name->Substring(0, args->Name->IndexOf(",")) + ".dll";
Assembly^ retval = Assembly::LoadFrom(finalPath);
return retval;
}
catch (...)
{
}
return nullptr;
}