_wmemcpy замена 64-битных программ - PullRequest
0 голосов
/ 07 мая 2020

Я использую C ++ Builder 10.3.1 от Embarcadero Technology для разработки Windows 10 настольных компьютеров. Я конвертирую свой код в 64-битный. У меня есть код, использующий _wmemcpy. Ссылка ниже - это страница dockwiki Embarcadero для _wmemcpy. Внизу под «Переносимостью» указано, что _wmemcpy только для Win32. Я не могу найти рекомендованной замены для 64-битных программ.

Embarcadero docwiki для _wmemcpy

Ниже приведен код из моего файла C ++ и заголовочного файла .h, где _wmemcpy используется некоторое время l oop. Можете ли вы порекомендовать 64-битную замену для _wmemcpy.

// ФАЙЛ: AjIniSe c. cpp

#pragma hdrstop

#include "AjIniSec.h"
#include "AjIniVal.h"
#include <wchar.h>
#include <memory.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
//---------------------------------------------------------------------------
__fastcall TAjIniSection::~TAjIniSection()
{

}
//-------------------------------------------------------------------

wchar_t* __fastcall TAjIniSection::WriteToStr(wchar_t* Str)
{
   IniValIter Iter = FItems.begin();
   IniValIter End = FItems.end();

   while(Iter != End)
   {
      int Len = (*Iter).first.Length();
      _wmemcpy(Str, (*Iter).first.c_str(), Len);
      Str += Len;
      *Str = L'='; ++Str;
      Str = (*Iter).second.WriteToStr(Str);
      ++Iter;
   }

   return Str;
}

// ФАЙЛ: AjIniSe c .h

#ifndef AjIniSecH
#define AjIniSecH

#include <System.Classes.hpp>
#include <map>

#include "AjIniVal.h"
//---------------------------------------------------------------------------
class TAjIniVal;
typedef std::map<String, TAjIniVal> TAjIniValMap;
typedef TAjIniValMap::iterator IniValIter;
//---------------------------------------------------------------------------
class TAjIniSection
{
private:
   TAjIniValMap FItems;

protected:
   int __fastcall getSize();

public:
   //--------------------
   __fastcall TAjIniSection(){};
   virtual __fastcall ~TAjIniSection();
   //--------------------

   bool __fastcall ReadBool(const String Ident, bool Default);
   int __fastcall ReadInteger(const String Ident, int Default);
   double __fastcall ReadFloat(const String Ident, double Default);
   String __fastcall ReadString(const String Ident, String Default);

   void __fastcall WriteString(const String Ident, String Value);

   wchar_t* __fastcall ReadFromStr(wchar_t* Str);
   wchar_t* __fastcall WriteToStr(wchar_t* Str);

   __property int Size = {read=getSize};
};
//---------------------------------------------------------------------------
#endif
...