2012-05-04 18 views
-3

このコードをC++(Microsoft C++ ATL/MFC)プロジェクトに翻訳する必要があります。c#コードをC++(Microsoft C++)バージョンに転送する

  var ticks = System.DateTime.Now.Ticks; 
      byte[] c = BitConverter.GetBytes(ticks); 
      byte[] buffer = new byte[c.Length]; 
      for (int i = 0; i < buffer.Length; i++) 
      buffer[i] = (byte)c[i]; 
  1. System.dateTime.Now.TicksためのC言語で対応するコールは、++は何ですか?

  2. 対応するC++のビットコンバータとは何ですか?

注:ブーストは、このプロジェクトではオプションではありません。

+1

'のstd :: chrono'、または[' :: chrono'後押し](HTTP:/をbitconverterについて 、あなたはC++の直接ポインタをキャストすることができるので、それを必要としません/www.boost.org/doc/libs/1_47_0/doc/html/chrono.html)を参照してください。必要があれば、[CTime :: GetCurrentTime()](http://msdn.microsoft.com/en-us/library/weky6tf3(v=80).aspx)を使用してください。 –

+4

[スタックオーバーフローはコード変換ではありませんサービス](http://meta.stackexchange.com/a/129362/166663)。 – ildjarn

+1

なぜ新しい配列に 'byte'sを入れて、それを1つずつ新しい配列にコピーしますか? –

答えて

0

のGetTickCount()は、等価物として働くことができる:

http://msdn.microsoft.com/en-us/library/ms724408%28VS.85%29.aspx

これは32ビット(DWORD)の値を返すので、バッファサイズ= 4つのバイトであろう。あなたのコンパイラがそれを持っている場合

DWORD ticks = GetTickCount(); 
BYTE* buffer = (BYTE*)&ticks; 
関連する問題