3

C++を使用して開発されたdllがあります。これらの関数を C# アプリケーションで使用したいと考えています。アプリケーションで dll を使用する方法は知っていますが、問題は、DLL が SYSTEMTIME タイプのパラメーターを予期していることです。

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

しかしSYSTEMTIME、C# コードで を使用できません。使用方法の回避策を提案してくださいSYSTEMTIME

4

2 に答える 2

4

それはうまくいくはずです:

[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のすぐに使用できるソリューションも参照してください。

于 2012-05-16T06:43:38.853 に答える
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;
    }
于 2012-05-16T06:44:25.113 に答える