我有一个使用 C++ 开发的 dll。现在我希望在我的 C# 应用程序中使用这些函数。我知道如何在我的应用程序中使用 dll,但我的问题是 dll 需要一个 SYSTEMTIME 类型的参数。
[DllImport("MyControl.dll")]
public static extern Int32 MyCONTROL_NewControl(SYSTEMTIME stime);
但我无法SYSTEMTIME
在我的 C# 代码中使用。请就如何使用SYSTEMTIME
.
我有一个使用 C++ 开发的 dll。现在我希望在我的 C# 应用程序中使用这些函数。我知道如何在我的应用程序中使用 dll,但我的问题是 dll 需要一个 SYSTEMTIME 类型的参数。
[DllImport("MyControl.dll")]
public static extern Int32 MyCONTROL_NewControl(SYSTEMTIME stime);
但我无法SYSTEMTIME
在我的 C# 代码中使用。请就如何使用SYSTEMTIME
.
那应该工作:
[StructLayout(LayoutKind.Sequential)]
private struct SYSTEMTIME {
Int16 wYear;
Int16 wMonth;
Int16 wDayOfWeek;
Int16 wDay;
Int16 wHour;
Int16 wMinute;
Int16 wSecond;
Int16 wMilliseconds;
}
另请参阅Christian.K指出的pinvoke的即用型解决方案。
这就是你在 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;
}