我正在使用 .dll 将数据从 c++ .dll 传递到 C# 应用程序DllImport。
我想做的是计算数据传输时间。所以我想在dll函数中获取以毫秒为单位的系统时间,然后在C#端再次执行相同的操作,并获取两者之间的差值来计算所花费的时间。
在 C++ 方面,我发送的信息long如下:
boost::posix_time::ptime current_date_microseconds = boost::posix_time::microsec_clock::local_time();
long millisecondStamp2 = current_date_microseconds.time_of_day().total_milliseconds();
我将其long作为名为 的变量发送到 C# timestamp,然后运行:
long milliseconds = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;
long elapsed = milliseconds - timestamp;
当我打印这些值时,它们看起来像这样:
63705280140098 //c#
54540098 //c++
63705225600000 // elapsed
为什么 C++ 值和 C# 值如此不同?如何以这种方式从系统时钟获得等效值?
呼如林