Есть ли бесплатная реализация printf для .net? - PullRequest
15 голосов
/ 02 марта 2010

Проблемы:

  • Я не могу использовать строку. Формат, у меня есть строки в стиле C;
  • Я не могу вызвать нативный printf (без P / Invoke);
  • Я не могу использовать http://www.codeproject.com/KB/printing/PrintfImplementationinCS.aspx из-за лицензии, мне нужно что-то совместимое с GPL.

Существует ли бесплатная реализация printf / sprintf для .net framework? Кроме ссылки выше, я ничего не смог найти.

Спасибо!

Обновление:

Спасибо за помощь, хотя вы ничего не смогли найти. Это означает, что я просто должен сделать это сам (я пытался избежать этого, ну да ладно ...)
Я подготовил функцию sprintf, которая поддерживает строки основного формата, вы можете найти ее здесь: https://sourceforge.net/projects/printfnet/. Я постараюсь сделать ее полной реализацией, если смогу.

Ответы [ 3 ]

4 голосов
/ 02 марта 2010

Я думаю, вы хотите это: http://www.codeproject.com/KB/printing/PrintfImplementationinCS.aspx

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

РЕДАКТИРОВАТЬ: Я вижу, что лицензия для этой версии не совместима с тем, что вам нужно - в этом случае, я определенно рекомендую смотреть на вызов неуправляемой версии напрямую, как обсуждается в следующей статье блога. Это, наверное, самая совместимая и безопасная вещь.

Если это не поможет, вот статья в блоге о фактическом вызове неуправляемой функции printf:

http://community.bartdesmet.net/blogs/bart/archive/2006/09/28/4473.aspx

Похоже, это все, что вам нужно для вызова неуправляемого printf из C #:

[DllImport("msvcrt40.dll")]
public static extern int printf(string format, __arglist);

static void Main(string[] args)
{
   printf("Hello %s!\n", __arglist("Bart"));
}
4 голосов
/ 02 марта 2010

Почему бы вам не найти совместимую с GPL реализацию printf, написанную на C, и портировать ее на .NET?

2 голосов
/ 02 марта 2010

Как насчет управляемой оболочки C ++? Уверен, что оттуда вы можете вызвать printf.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...