C# Dll hivas pointer attributummal

C# Dll hivas pointer attributummal
2009-03-03T16:10:27+01:00
2009-03-06T10:40:43+01:00
2022-11-12T19:50:44+01:00
Kors
Szoval az lenne a problémám, hogy nem tudom miként lehet hivatkozni a struktúra pointerére a függvénydeklarációban.

[DllImport("papi.dll", CharSet = CharSet.Unicode)] unsafe public static extern Int16 profi_snd_req_res(T_PROFI_SERVICE_DESCR* pSdb, IntPtr pData, Byte Dummy); [StructLayout(LayoutKind.Sequential)] public class T_PROFI_SERVICE_DESCR { public UInt16 comm_Ref; public Byte layer; public Byte service; public Byte primitive; public SByte invoke_id; public Int16 result; }
Mutasd a teljes hozzászólást!
unsafe public static extern Int16 profi_snd_req_res(ref T_PROFI_SERVICE_DESCR pwfi, IntPtr pData, Byte Dummy);

Viszont akkor tényleg struktúrának kéne lennie, tehát:

[StructLayout(LayoutKind.Sequential)] public struct T_PROFI_SERVICE_DESCR { public UInt16 comm_Ref; public Byte layer; public Byte service; public Byte primitive; public SByte invoke_id; public Int16 result; }
Mutasd a teljes hozzászólást!

  • Vmi ezzel nem stimmel....úgy fest mintha működne, de nem jól az tuti...

    [DllImport("papi.dll", CharSet = CharSet.Auto, SetLastError = true)] unsafe public static extern Int16 profi_rcv_con_ind(ref T_PROFI_SERVICE_DESCR pSdb, ref Byte[] pData, ref UInt16 pDataLength); //[StructLayout(LayoutKind.Sequential)] public unsafe struct T_PROFI_SERVICE_DESCR { public unsafe UInt16 comm_Ref; public unsafe Byte layer; public unsafe Byte service; public unsafe Byte primitive; public unsafe SByte invoke_id; public unsafe Int16 result; }
    Ezzel a hibaüzivel elszáll néha...
    System.ExecutionEngineException was unhandled
    Message="Exception of type 'System.ExecutionEngineException' was thrown."
    InnerException:
    Mutasd a teljes hozzászólást!
  • Ebben az esetben sokkal valószínűbb, hogy a dll-ben van a hiba, mint a deklarációban.
    Mutasd a teljes hozzászólást!
  • Ez a DLL kiválóan működik Delphi alol...
    Csak a 'ref'-el lehet igy átadni a cimét a struktúrának?
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd