Не работает один из параметров в DllImport - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день! Подскажите пожалуйста, в таком вопросе: есть библиотека написанная в дельфи, я работаю с ней в C#, там передается параметр ... Handle pHandle) но C# не понимает pHandle. Как это реализовать? Спасибо.
вот так выглядит строка....
        [ DllImport("pump32.dll")]
        public static extern int pmOpenPump(byte portNo, char NetAdr, pHandle Handle);
и ругается на pHandle...

Решение задачи: «Не работает один из параметров в DllImport»

textual
Листинг программы
unit Pumps;
 
interface
uses windows;
 
type
  TpmResult = integer;
const
  pmRes_Ok = $00;
  pmRes_InvalidValue = $01;
  pmRes_InvalidHandle = $02;
  pmRes_WinError = $03;
  pmRes_TimeOut = $04;
  pmRes_FailAnswer = $05;
  pmRes_CommandLock = $41;
  pmRes_InvalidCrc = $42;
  pmRes_IndexOutOfBounds = $44;
  pmRes_InvalidFormat = $46;
  pmRes_NeedSetAmount = $4E;
  pmRes_Working = $4F;
  pmRes_StartOffNozzle = $50;
  pmRes_NozzleOff = $54;
  pmRes_Undefine = $55;
  pmRes_SmallAmount = $5A;
 
type
  TpmPumpState = integer;
const
  pmPumpState_Error = -1;
  pmPumpState_Idle = $0;
  pmPumpState_Ready = $1;
  pmPumpState_Work = $2;
 
type
  TpmHandle = integer;
 
  TpmPump = record
    handle: integer;
    netAdr: char;
    state: TpmPumpState;
    error: TpmResult;
    activeNozzle: integer;
    volume: integer;
  end;
  PpmPump = ^TpmPump;
 
 
type
  TpmEventHandler = procedure(PumpHandle: TpmHandle);
 
function pmOpenPump(portNo: byte; NetAdr: char; Handle: pHandle): TpmResult; stdcall; external 'pump32.dll' name 'pmOpenPump';
function pmClosePump(Handle: TpmHandle): TpmResult; stdcall; external 'pump32.dll' name 'pmClosePump';
function pmGetPump(Handle: TpmHandle; Pump: PpmPump): TpmResult; stdcall; external 'pump32.dll' name 'pmGetPump';
function pmStart(Handle: TpmHandle; Nozzle: byte; Price, Amount: double): TpmResult; stdcall; external 'pump32.dll' name 'pmStart';
function pmStop(Handle: TpmHandle; Nozzle: byte): TpmResult; stdcall; external 'pump32.dll' name 'pmStop';
function pmGetCounter(Handle: TpmHandle; Nozzle: byte; Counter: pdouble): TpmResult; stdcall; external 'pump32.dll' name 'pmGetCounter';
procedure pmSetEventHandler(Handler: TpmEventHandler); stdcall; external 'pump32.dll' name 'pmSetEventHandler';
 
implementation
 
end.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4 из 5
Похожие ответы