ang0716 2022-09-03 18:36 采纳率: 33.3%
浏览 35
已结题

关于结构体转IntPtr的问题!(语言-c#)

调用C++ 类的方法是需要将定义的结构体转换为IntPtr 在调用Marshal.StructureToPtr方法进行转换时抛出未找到ExceptionWrapper.cs的异常信息


c#

结构体定义
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
        public struct Connect
        {
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1024)]
            public char[] IPAddress;
            public int port;
        };

转换方法
public static IntPtr StructToIntPtr<T>(T info)
        {
            int size = Marshal.SizeOf(info);
            IntPtr intPtr = Marshal.AllocHGlobal(size);
            Marshal.StructureToPtr(info, intPtr, true);
            return intPtr;
        }

调用
public static void CnnectedIGS(string Ipaddress)
        {

            Connect connect = new Connect();
            connect.IPAddress = Ipaddress.ToCharArray();
            connect.port = 1234;
            IntPtr ptr = StructToIntPtr(connect);
        }




本人实在是找不出问题出在什么地方 还望各位予以指正 谢谢

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 已结题 (查看结题原因) 9月7日
    • 创建了问题 9月3日