Создание проекта без виззарда

Автор Тема: Создание проекта без виззарда  (Прочитано 3498 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн pucherАвтор темы

  • ADN OPEN
  • Сообщений: 19
  • Карма: 0
Здравствуйте. Создание проекта при помощи виззарда срабатывает. А вот попытка создать проект с ноля, как описано в Developer's Guide, через Empty Project, не увенчалась успехом. Код следующий:
Код - C++ [Выбрать]
  1. #include "rxregsvc.h"
  2. #include "acutads.h"
  3. #include "stdafx.h"
  4. #include "tchar.h"
  5. #include <aced.h>
  6.  
  7. extern "C" AcRx::AppRetCode
  8. acrxEntryPoint(AcRx::AppMsgCode msg, void* appId)
  9. {
  10.     switch(msg) {
  11.     case AcRx::kInitAppMsg:
  12.         acrxUnlockApplication(appId);
  13.         acrxRegisterAppMDIAware(appId);
  14.         acutPrintf(_T("\nHello World!"));
  15.     break;
  16.     case AcRx::kUnloadAppMsg:
  17.     break;
  18.     }
  19.     return AcRx::kRetOK;
  20. }
При попытке компиляции в строке
Код - C++ [Выбрать]
  1. acutPrintf(_T("\nHello World!"));
обнаруживаются ошибки:
Цитировать
Error   1   error C2664: 'acutPrintf' : cannot convert parameter 1 from 'const char [14]' to 'const ACHAR *'
   2   IntelliSense: argument of type "const char *" is incompatible with parameter of type "const ACHAR *"
Вопросы:
1. Как победить эту ошибку?
2. Почему во всех примерах  Developer's Guide при работе со строкой не используется запись вида _T(x)? Например,
Код - C++ [Выбрать]
  1. acutPrintf("\nExample Application Loaded");
Такая строка даже в проекте, созданном виззардом, вызовет ошибку. Не будут же все примеры неправильными...

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Создание проекта без виззарда
« Ответ #1 : 17-12-2018, 21:40:54 »
pucher,
Прочитай у меня в подписи как следует форматировать код у нас на форуме и исправь у себя в сообщении!
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн pucherАвтор темы

  • ADN OPEN
  • Сообщений: 19
  • Карма: 0
Re: Создание проекта без виззарда
« Ответ #2 : 17-12-2018, 22:05:55 »
Прочитай у меня в подписи как следует форматировать код у нас на форуме и исправь у себя в сообщении!
Готово

Отмечено как Решение pucher 17-12-2018, 22:46:43

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Создание проекта без виззарда
« Ответ #3 : 17-12-2018, 22:37:42 »
Готово
Отлично. Теперь по существу вопроса. В каждой из версий ObjectARX и Visual Studio свои особенности настройки проектов. Рекомендую не заморачиваться и использовать ObjectARX Wizard, т.к. запомнить десятки необходимых настроек проекта очень сложно.
1. Как победить эту ошибку?
Проект должен быть Unicode. Тогда _T("...") означает L"...", а не "..." и компиляция проходит нормально.
2. Почему во всех примерах  Developer's Guide при работе со строкой не используется запись вида _T(x)? Например,
Код - C++ [Выбрать]

    acutPrintf("\nExample Application Loaded");

Такая строка даже в проекте, созданном визардом, вызовет ошибку. Не будут же все примеры неправильными...
Многие примеры в нём устаревшие и не учитывают UNICODE-революцию в AutoCAD 2007.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение