Подтвердить что ты не робот

Директива препроцессора в С# для импорта на платформе

Ищете директиву препроцессора в С# для импорта dll в зависимости от того, является ли исполняемый файл 64-битным или 32-битным:

#if WIN64
[DllImport("ZLIB64.dll", CallingConvention=CallingConvention.Cdecl)]
#else
[DllImport("ZLIB32.dll", CallingConvention=CallingConvention.Cdecl)]
4b9b3361

Ответ 1

Вот что вам нужно сделать.

Сначала перейдите в Project-><project name> Properties... и перейдите на вкладку "Сборка".

В текстовом поле с надписью "Условные символы компиляции" добавьте WIN32 для вашей платформы x86 (выберите ее в верхней части диалогового окна) и WIN64 для вашей платформы x64. Затем сохраните.

Обратите внимание, что если у вас есть один для "AnyCPU", вы, вероятно, захотите полностью удалить эту платформу, так как это будет небезопасно.

Затем перейдите в источник и напишите это:

#if WIN64
    [DllImport("ZLIB64.dll", CallingConvention=CallingConvention.Cdecl)]
#else
    [DllImport("ZLIB32.dll", CallingConvention=CallingConvention.Cdecl)]
#endif

Обратите внимание, что при просмотре источника одна из строк будет выглядеть так, как будто она была закомментирована, так как вся строка имеет серый шрифт. Эта линия является одной для "другой платформы". Если вы выберете платформу на панели инструментов, вы заметите, что раскраска синтаксиса следует примеру.

Конечно, после повторного чтения моего ответа я замечаю, что на самом деле вам не нужно помещать WIN32 в список условных символов, поскольку он не используется, но может быть полезно использовать другие места для #if для WIN32 вместо 64.

Ответ 2

Вам нужно добавить символ условной компиляции для каждой целевой платформы в свойствах проекта на вкладке "Сборка". Просто добавьте символ для данной платформы, как описано в раскрывающемся списке "Платформа" в верхней части формы "Сборка". Изменение платформы позволит вам добавлять разные символы, которые применяются только к сборке для этой платформы.

Ответ 3

Нет ничего встроенного, о котором я знаю. Тем не менее, просто определить пользовательскую константу компиляции. Если вы используете Visual Studio, создайте разные конфигурации сборки для 32-битной и 64-разрядной версий с помощью Configuration Manager. Затем откройте свойства проекта и перейдите на вкладку "Сборка" и введите описательное имя в текстовое поле условных компиляций для каждой конфигурации сборки. Затем вы можете ссылаться на константы компиляции в коде.