我一直在尝试理解this。这是一个名为W32TIME_STATUS_INFO的结构的参考页面。
typedef struct {
unsigned __int32 ulSize;
unsigned __int32 eLeapIndicator;
unsigned __int32 nStratum;
signed __int32 nPollInterval;
unsigned __int32 refidSource;
unsigned __int64 qwLastSyncTicks;
signed __int64 toRootDelay;
unsigned __int64 tpRootDispersion;
signed __int32 nClockPrecision;
[string, unique] wchar_t* wszSource;
signed __int64 toSysPhaseOffset;
unsigned __int32 ulLcState;
unsigned __int32 ulTSFlags;
unsigned __int32 ulClockRate;
unsigned __int32 ulNetlogonServiceBits;
unsigned __int32 eLastSyncResult;
unsigned __int64 tpTimeLastGoodSync;
unsigned __int32 cEntries;
[size_is(cEntries)] PW32TIME_ENTRY pEntries;
} W32TIME_STATUS_INFO,
*PW32TIME_STATUS_INFO;我想在C#代码中使用W32TimeQueryStatus here方法,但我不知道应该如何在C#代码中定义该结构,该方法接受指向该结构的指针作为参数。所有这些__int32和__int64是什么?我已经搜索了“双下划线c”之类的,但我找到的所有东西都是非常不具体的。
我可能需要单独询问handle_t参数,所以现在我只想询问如何定义此结构并将其传递给C#中的PInvoked方法。
发布于 2016-07-14 18:16:11
发布于 2016-07-14 18:16:58
摘自2003年的C++标准:
每个包含双下划线(_ _)或以下划线开头后跟大写字母(2.11)的名称都保留给实现以供任何使用。
为简化起见,__int32是32位编码的int和64位编码的__int64。消除了标准int类型的大小抽象,这样就可以确定变量将精确地分配4个字节
发布于 2016-07-14 18:24:25
将"unsigned __int32“替换为"Uint32”,对于已签名的__int32,请使用"Int32“。__int64也是如此。
https://stackoverflow.com/questions/38371369
复制相似问题