DLL导入使用SYSTEMTIME

时间:2012-05-16 06:36:55

标签: c# visual-c++ dllimport

我有一个使用C ++开发的DLL。现在我希望在我的C#应用​​程序中使用这些函数。 我知道如何在我的应用程序中使用dll,但我的问题是dll需要一个类型为SYSTEMTIME的参数。

[DllImport("MyControl.dll")]
 public static extern Int32 MyCONTROL_NewControl(SYSTEMTIME stime);

但我无法在我的C#代码中使用SYSTEMTIME。请提供有关如何使用SYSTEMTIME的解决方法。

2 个答案:

答案 0 :(得分:4)

这应该有效:

[StructLayout(LayoutKind.Sequential)]
private struct SYSTEMTIME {
    Int16 wYear;
    Int16 wMonth;
    Int16 wDayOfWeek;
    Int16 wDay;
    Int16 wHour;
    Int16 wMinute;
    Int16 wSecond;
    Int16 wMilliseconds;
}

另请参阅pinvoke所指向的Christian.K即用型解决方案。

答案 1 :(得分:3)

这就是你在c#中使用它的方式:

    [StructLayout(LayoutKind.Sequential)]
    public struct SYSTEMTIME
    {
        ushort wYear;//ushort = WORD
        ushort wMonth;
        ushort wDayOfWeek;
        ushort wDay;
        ushort wHour;
        ushort wMinute;
        ushort wSecond;
        ushort wMilliseconds;
    }