Kaysar3k Ответов: 2

Преобразование кода из C++ в C#


Как преобразовать этот код в C# -:


void GDSIIData::Log(const char *format, ...)
{
  va_list ap;
  va_start(ap,format);
  char buffer[MAXSTR];
  vsnprintf(buffer,MAXSTR,format,ap);
  va_end(ap);

  FILE *f=0;
  if (LogFileName && !strcmp(LogFileName,"stderr"))
   f=stderr;
  else if (LogFileName && !strcmp(LogFileName,"stdout"))
   f=stdout;
  else if (LogFileName)
   f=fopen(LogFileName,"a");
  if (!f) return;

  time_t MyTime;
  struct tm *MyTm;
  MyTime=time(0);
  MyTm=localtime(&MyTime);
  char TimeString[30];
  strftime(TimeString,30,"%D::%T",MyTm);
  fprintf(f,"%s: %s\n",TimeString,buffer);

  if (f!=stderr && f!=stdout) fclose(f);
}


Что я уже пробовал:

Не могли бы Вы мне помочь плз ;)
Я не нашел подходящей функции.

Rick York

Если вы даже не можете написать слово "пожалуйста", то нет, мы не можем вам помочь.

Dave Kreskowiak

Вы должны полностью понять, что делает код C++ и почему. Затем вы можете написать новый код, который делает то же самое или примерно то же самое в C#.

Попытка выполнить преобразование строки в строку не сработает хорошо, а в некоторых случаях даже будет возможна.

2 Ответов

Рейтинг:
1

CPallini

Если вам просто нужно войти в систему данных из вашего C# программа тогда не переводит напрямую такие C++ код (он даже не обеспечит дружественный интерфейс для вызывающего абонента).
Вместо этого реализуйте свой собственный регистратор, используя средства языка (и фреймворка). Вы также можете найти много реализаций C# Класс регистратора доступен в интернете.


Рейтинг:
1

Richard MacCutchan

К сожалению, этот сайт не предоставляет услуг по преобразованию кода или написанию кода. Изучите код, чтобы увидеть, что он пытается сделать, и напишите то же самое на C#, там нет прямого преобразования для большей части того, что у вас есть.


Kaysar3k

Ладно, спасибо... но было бы здорово, если бы кто-то мог дать предложения или ответы

Richard MacCutchan

Я дал вам предложение, а также объяснил, что большая часть этого кода не может быть непосредственно преобразована, поскольку у него нет прямых эквивалентов в C#.