Сообщество программистов Autodesk в СНГ
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
1 час
1 день
1 неделя
1 месяц
Навсегда
Новости:
Звонок в техподдержку Autodesk Forge
Начало
Сайт
Правила
Помощь
Поиск
Непрочитанные
Календарь
Вход
Регистрация
Сообщество программистов Autodesk в СНГ
»
ADN Club
»
AutoCAD .NET API
»
Условная компиляция
« предыдущая тема
следующая тема »
Печать
Страницы: [
1
]
Вниз
Автор
Тема: Условная компиляция (Прочитано 5145 раз)
0 Пользователей и 1 Гость просматривают эту тему.
Алексей (IdeaSoft)
ADN
Сообщений: 1189
Карма: 9
Skype:
Условная компиляция
«
:
11-01-2017, 18:19:05 »
Помогите с дерективой препроцессора
в VB делаю так. Все хорошо.
Код - vb.net
[Выбрать]
#Const ACAD_VER
=
2013
Public
Shared
Function
acadnet_Document_Add
(
acadVer
As
Integer
)
Dim
NameTemplate_OUT
As
String
=
"c:\template.dwg"
Dim
acDocMgr
As
CAD_APS.
DocumentCollection
=
CAD_APS.
Application
.
DocumentManager
#If
(
ACAD_VER >
=
2013
)
Then
Return
DocumentCollectionExtension.
Add
(
acDocMgr, NameTemplate_OUT
)
#Else
Return
acDocMgr.
Add
(
NameTemplate_OUT
)
#End
If
End
Function
Хочу перевести на C#
Что не так делаю?
Код - C#
[Выбрать]
#Const ACAD_VER = 2013 // Тут ругается ???
public
static
object
acadnet_Document_Add
(
int
acadVer
)
{
string
NameTemplate_OUT
=
"c:
\\
template.dwg"
;
DocumentCollection acDocMgr
=
Autodesk
.
AutoCAD
.
ApplicationServices
.
Application
.
DocumentManager
;
#if (ACAD_VER >= 2013) // Тут ругается ???
return
DocumentCollectionExtension
.
Add
(
acDocMgr, NameTemplate_OUT
)
;
#else
return
acDocMgr
.
Add
(
NameTemplate_OUT
)
;
#endif
}
Записан
Отмечено как Решение
Алексей (IdeaSoft)
11-01-2017, 18:41:32
Александр Ривилис
Administrator
Сообщений: 13882
Карма: 1787
Рыцарь ObjectARX
Skype:
Re: Условная компиляция
«
Ответ #1 :
11-01-2017, 18:33:21 »
В C# препроцессор сильно урезанный. Так что такие фокусы у тебя не получатся.
Код - C#
[Выбрать]
#define ACAD2013
#if ACAD2013
// здесь код
#endif
Такие сравнения недопустимы:
Код - C#
[Выбрать]
#if (ACAD_VER < 2013)
Записан
Не забывайте про правильное
Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился
правильный ответ
, то не забудьте про кнопку
Решение
Алексей (IdeaSoft)
ADN
Сообщений: 1189
Карма: 9
Skype:
Re: Условная компиляция
«
Ответ #2 :
11-01-2017, 18:42:21 »
Ага я понял через #else не делается.
т.е. так
Код - C#
[Выбрать]
#define ACAD2013
// или
#define ACAD2012
Будет выполнятся то что в блоке
#if
#if (ACAD2012)
return
DocumentCollectionExtension
.
Add
(
acDocMgr, NameTemplate_OUT
)
;
#endif
#if (ACAD2013)
return
acDocMgr
.
Add
(
NameTemplate_OUT
)
;
#endif
Записан
Алексей (IdeaSoft)
ADN
Сообщений: 1189
Карма: 9
Skype:
Re: Условная компиляция
«
Ответ #3 :
11-01-2017, 18:47:54 »
А нет вру делается через #else
Код - C#
[Выбрать]
public
static
Document acadnet_Document_Add
(
string
NameTemplate_OUT
)
{
DocumentCollection acDocMgr
=
Autodesk
.
AutoCAD
.
ApplicationServices
.
Application
.
DocumentManager
;
#if (ACAD2012)
return
DocumentCollectionExtension
.
Add
(
acDocMgr, NameTemplate_OUT
)
;
#else
return
acDocMgr
.
Add
(
NameTemplate_OUT
)
;
#endif
}
Записан
Печать
Страницы: [
1
]
Вверх
« предыдущая тема
следующая тема »
Сообщество программистов Autodesk в СНГ
»
ADN Club
»
AutoCAD .NET API
»
Условная компиляция