Прекрасно работал с ключом пока не решил задействовать rulm.
Win7 x64. VS 2017. Уже даже вынес общение с ключом в отдельную прогу x86.
- Код: Выделить всё
[DllImport("Sense4.dll", CallingConvention = CallingConvention.StdCall)]
public static extern uint S4ExecuteEx(ref SENSE4_CONTEXT ctx,
String FileID, UInt32 Flags,
[MarshalAs(UnmanagedType.AsAny)] Object InBuffer, Int32 InBufferSize,
[MarshalAs(UnmanagedType.AsAny), Out] Object OutBuffer, Int32 OutBufferLen,
ref UInt32 BytesReturned);
public const UInt32 CMD_LM_LIC_CHECKOUT = 0x03;
public const UInt32 S4_VM_EXE = 0x00000000;
- Код: Выделить всё
inBuffer = new byte[4];
outBuffer = new byte[240];
BytesReturned = 0;
inBuffer[0] = (Byte)ConstantsSense.CMD_LM_LIC_CHECKOUT;
inBuffer[1] = 1;
inBuffer[2] = 0;
inBuffer[3] = 0;
ret = LocalSense.S4ExecuteEx(ref si[SLindex], "FF02", ConstantsSense.S4_VM_EXE, inBuffer, inBuffer.Length, outBuffer, outBuffer.Length, ref BytesReturned);
if (ConstantsSense.S4_SUCCESS != ret) { go = false; return ret; }
if (outBuffer[0] > 0) { go = false; return outBuffer[0]; }
Получаю ошибку 2.
Что я не так делаю? Как мне проверить лицензию?
PS.
- Код: Выделить всё
inBuffer = new byte[2];
outBuffer = new byte[240];
BytesReturned = 0;
inBuffer[0] = (Byte)ConstantsSense.CMD_LM_LIC_GET_INFO;
inBuffer[1] = 1;
ret = LocalSense.S4ExecuteEx(ref si[SLindex], "FF02", ConstantsSense.S4_VM_EXE, inBuffer, inBuffer.Length, outBuffer, outBuffer.Length, ref BytesReturned);
Возвращает всегда 99 (ошибка 63) какой бы номер лицензии я не указал.