I do not know why that exception is generated (I has that error in AutoCAD 2006 and 2007), but this wrapper can help you:
[code]
class Test
{
class Wrapper
{
static int AcadVersion = Autodesk.AutoCAD.ApplicationServices.Application.Version.Major;
// For AutoCAD 2006:
[System.Security.SuppressUnmanagedCodeSecurity]
[DllImport("acdb16.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi,
EntryPoint = "?acdbLoadMlineStyleFile@@YA?AW4ErrorStatus@Acad@@PBD0@Z")]
extern private static ErrorStatus acdbLoadMlineStyleFile16(string mStyle, string mPath);
// For AutoCAD 2007:
[System.Security.SuppressUnmanagedCodeSecurity]
[DllImport("acdb17.dll", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode,
EntryPoint = "?acdbLoadMlineStyleFile@@YA?AW4ErrorStatus@Acad@@PB_W0@Z")]
extern private static ErrorStatus acdbLoadMlineStyleFile17(string mStyle, string mPath);
public static ErrorStatus acdbLoadMlineStyleFile(string mStyle, string mPath)
{
switch(AcadVersion)
{
case 16: return acdbLoadMlineStyleFile16(mStyle, mPath);
case 17: return acdbLoadMlineStyleFile17(mStyle, mPath);
}
return ErrorStatus.NotImplementedYet;
}
};
//
// For test only
//
[CommandMethod("T1")]
public static void T1()
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ErrorStatus es = Wrapper.acdbLoadMlineStyleFile("METAL", @"F:\Program Files\AutoCAD 2007\ran.mln");
if (es != ErrorStatus.OK)
{
ed.WriteMessage("\nError: {0}", es);
}
}
}
[/code]