DLL的原程序是用C写的. 在DLL文件, .h文件里面定义的数据结构WTLS_TERMINAL_MODE_BAG ,在C#调用的时候,编译不通过.
[DllImport("xWTLS.dll")] public static extern int WTLS_terminalMode(WTLS_TERMINAL_MODE_BAG *Bag);有两个问题,
1. 数据结构WTLS_TERMINAL_MODE_BAG ,没有找到, 怎么解决?
2. 在C#里面没有指针,这个问题怎么处理?
[DllImport("xWTLS.dll")] public static extern int WTLS_terminalMode(WTLS_TERMINAL_MODE_BAG *Bag);有两个问题,
1. 数据结构WTLS_TERMINAL_MODE_BAG ,没有找到, 怎么解决?
2. 在C#里面没有指针,这个问题怎么处理?
public static extern int WTLS_terminalMode( IntPtr Bag);
public struct RCV_HISTORY_STRUCTEx
{
[FieldOffset(0)]
public int m_time;
[FieldOffset(4)]
public float m_fOpen;
[FieldOffset(8)]
public float m_fHigh;
[FieldOffset(12)]
public float m_fLow;
[FieldOffset(16)]
public float m_fClose;
[FieldOffset(20)]
public float m_fVolume;
[FieldOffset(24)]
public float m_fAmount;
[FieldOffset(28)]
public ushort m_wAdvance;
[FieldOffset(30)]
public ushort m_wDecline;
}
C#里面是怎么处理C里面的指针问题的.
另外谁说C#没指针?
声明好结构后你就能用指针了(unsafe代码)
不过看你这情况应该直接传ref就行了.