The procedure entry point ?Base64Decode@CSMUtilString@Util@CSM@SensorModel@ESRI@@S A_NQBDPAPADAAI@Z could not be located in the dynamic link library C:\PROGRAM FILES (X86)\ARCGIS\ENGINE10.1\BIN\GdalRasterDB.dll.
IGPUtilities2 gpUtils = new GPUtilitiesClass();
IDataset workspace = null;
try
{
workspace = gpUtils.OpenDatasetFromLocation(filepath);
}
catch (Exception)
{
}AccessViolationException was unhandled: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
/// <summary>
/// Loads the CSM.dll from ArcGIS BIN path in case the process wants to load the Microsoft library of same name.
/// Call this method as early as possible to be effective (e.g. main form OnLoad, program's entry point method).
/// </summary>
private static void PreLoadEsriCSM(bool debugOnly)
{
if (!debugOnly || System.Diagnostics.Debugger.IsAttached)
{
string path = System.IO.Path.Combine(ESRI.ArcGIS.RuntimeManager.ActiveRuntime.Path, "Bin\\CSM.dll");
if (System.IO.File.Exists(path))
{
bool isConflict = false;
bool isMatch = false;
using (var p = System.Diagnostics.Process.GetCurrentProcess())
{
foreach (System.Diagnostics.ProcessModule m in p.Modules)
{
if (m.ModuleName.ToLower() == "csm.dll")
{
if (path.ToLower() != m.FileName.ToLower())
isConflict = true;
else
{
isMatch = true;
break;
}
}
}
}
if (isConflict && !isMatch)
System.Diagnostics.Debug.WriteLine("It may be necessary to call this method earlier to be effective.");
if (!isMatch)
LoadLibrary(path);
}
}
}
[System.Runtime.InteropServices.DllImport("kernel32.dll")]
internal static extern IntPtr LoadLibrary(string dllname);
Thanks! My similar issue was finally solved.
<configuration> <system.diagnostics> <switches> <add name="Remote.Disable" value="1" /> </switches> </system.diagnostics> </configuration>
Thank you!!!! After 5 days i found your solution!!!
Thank you! 5 years on, and your clever hack has saved another from going nuts.