the problem starts with a function call to a mono function that is not supported yet. the call is made from a close matlab DLL called MWARRAY.DLL (.net version 2.x), this dll is normally used with VS .NET and is working if you use .net 3.5.
该职能是:[scorlib]System. Security. Principal.WindowsIdentity:GetCurrent(bool)
我可以想到几个可能的解决办法,但我不敢肯定如何做到:
- decompile dll and replace byte code with a similar and working function: [mscorlib]System.Security.Principal.WindowsIdentity::GetCurrent() notice that there is no boolean passed to the function
- compile mono and write the function myself
- using an old version of MWARRAY.DLL (couldnt find, but might still use the same code)
for the decompilation i used IDA. i found the location where there is a call to the first function, CIL + HEX below
loc_38B1:
ldsfld native
int [mscorlib]System.IntPtr::Zero
stloc.s 7
ldc.i4.0
stloc.s 8
ldc.i4.1
stloc.s 9
ldc.i4.1
call class [mscorlib]System.Security.Principal.WindowsIdentity::GetCurrent(bool)
stloc.s 0xA
call void [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::PrepareConstrainedRegions()
.try {
ldc.i4.0
stloc.s 0xB
br loc_3982
<>呼唤和中型指挥的HEX:
28 96 00 00 0A
i还汇编和编篡了我自己的批号,要求这两个职能都看看其他指挥如何按代号看:。
loc_3AE:
call class [mscorlib]System.Security.Principal.WindowsIdentity [mscorlib]System.Security.Principal.WindowsIdentity::GetCurrent()
callvirt class System.String [mscorlib]System.Security.Principal.WindowsIdentity::get_Name()
stloc.s 8
ldc.i4.1
http://www.un.org/Depts/DGACM/index_french.htm
28 00 00 0A 6F 1B 00 00 0A 13 08 17
i 想知道是否有任何人对拟议解决办法有想法,或者可能想到什么东西?