Повторное использование определяет оператор из.h файла в коде C#

Если вы используете Polymer и Firebase (полимерный огонь), см. этот ответ: https://stackoverflow.com/a/46698801/1821603

По существу вы создаете вторичный для обработки новой регистрации пользователя, не затрагивая текущего пользователя.

6
задан Brian Tompsett - 汤莱恩 3 June 2016 в 18:23
поделиться

5 ответов

Можно достигнуть того, что Вы хотите всего на нескольких шагах:

  1. Создайте задачу MSBuild - http://msdn.microsoft.com/en-us/library/t9883dzc.aspx
  2. Обновите файл проекта для включения вызова в задачу, созданную до сборки

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

При необходимости в дополнительной информации, не стесняйтесь комментировать.

2
ответ дан 8 December 2019 в 18:44
поделиться

MSDN говорит нам:

#define директива не может использоваться для объявления постоянных величин, как обычно делается в C и C++. Константы в C# лучше всего определяются как статические члены класса или структуры. Если Вы имеете несколько таких констант, полагаете, что создание отдельного класса "Констант" содержит их.

Можно создать библиотеку с помощью управляемого С++, который включает класс - обертка вокруг констант. Затем можно сослаться на этот класс из проекта C#. Просто не забывайте использовать только для чтения <тип> вместо константы <тип> для Вашего объявления констант :)

3
ответ дан 8 December 2019 в 18:44
поделиться

Можно записать простой C++/C утилита, которые включают этот.h файл и динамично создают файл, который может использоваться в C#.
Эта утилита может быть выполнена как часть проекта C# как этап перед сборкой.
Таким образом, Вы всегда - синхронизация с исходным файлом.

1
ответ дан 8 December 2019 в 18:44
поделиться

Вы могли всегда использовать событие перед сборкой для выполнения препроцессора C на .cs файле и событии сборки сообщения для отмены шага перед сборкой. Препроцессор является просто системой текстовой замены, таким образом, это возможно:

// version header file
#define Version "1.01"

// C# code
#include "version.h"
// somewhere in a class
string version = Version;

и препроцессор генерирует:

// C# code
// somewhere in a class
string version = "1.01";
2
ответ дан 8 December 2019 в 18:44
поделиться

Я записал сценарий Python, который преобразовывает #define НЕЧТО "панель" во что-то применимое в C#, и я использую его на шаге перед сборкой в моем проекте C#.Работает.

# translate the #defines in messages.h file into consts in MessagesDotH.cs

import re
import os
import stat

def convert_h_to_cs(fin, fout):
    for line in fin:
        m = re.match(r"^#define (.*) \"(.*)\"", line)
        if m != None:
            if m.group() != None:
                fout.write( "public const string " \
                + m.group(1) \
                + " = \"" \
                + m.group(2) \
                + "\";\n" )
        if re.match(r"^//", line) != None:
            fout.write(line)

fin = open ('..\common_cpp\messages.h')
fout = open ('..\user_setup\MessagesDotH.cs.tmp','w')

fout.write( 'using System;\n' )
fout.write( 'namespace xrisk { class MessagesDotH {\n' )

convert_h_to_cs(fin, fout)

fout.write( '}}' )

fout.close()

s1 = open('..\user_setup\MessagesDotH.cs.tmp').read()

s2 = open('..\user_setup\MessagesDotH.cs').read()

if s1 != s2:
    os.chmod('..\user_setup\MessagesDotH.cs', stat.S_IWRITE)
    print 'deleting old MessagesDotH.cs'
    os.remove('..\user_setup\MessagesDotH.cs')
    print 'remaming tmp to MessagesDotH.cs'
    os.rename('..\user_setup\MessagesDotH.cs.tmp','..\user_setup\MessagesDotH.cs')
else:
    print 'no differences.  using same MessagesDotH.cs'
0
ответ дан 8 December 2019 в 18:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: