Tomsk Sysadmins Forum

Windows => Программирование => Topic started by: arido on May 17, 2007, 17:10:56

Title: Visual Studio 8
Post by: arido on May 17, 2007, 17:10:56
Здравствуйте.
Проблема такая
Была рабочая программа, написаная в BC 5.5. Написана с использование API-функций.
Решила попробовать MC VS 8.Создала проект, перекинула модули. После компиляции вышла ошибка:
Code: [Select]
error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'char *' to 'LPCWSTR'
1>        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

Вот вызов этой функции:
Code: [Select]
/*создание окна*/
 WPass = CreateWindowW(szWinName[0],     //имя класса
        Name,             //заголовок
        WS_POPUP|WS_DLGFRAME|      //стиль окна
        WS_CAPTION|WS_SYSMENU,
        left,                      //координата х - позволить Windows выбрать
        top,                       //координата у - позволить Windows выбрать
        width,                     //ширина - позволить Windows выбрать
        height,                    //высота - позволить Windows выбрать
        HWND_DESKTOP,              //нет родительского окна
        NULL,                      //нет меню
        hThisInst,                 //работа с данным экземпляром программы
        NULL                       //дополнительные аргументы отсутствуют
        );

Описание переменных:
Code: [Select]
char *szWinName[] =    /*имя класса окна*/
    {
      "WinPass",
      "WinGeneral"
     };
char Name[30] = "Наименование предприятия";

Если сделать так (добавить (LPCTSTR) )
Code: [Select]
/*создание окна*/
 WPass = CreateWindowW((LPCTSTR)szWinName[0],     //имя класса
        (LPCTSTR)Name,             //заголовок
        WS_POPUP|WS_DLGFRAME|      //стиль окна
        WS_CAPTION|WS_SYSMENU,
        left,                      //координата х - позволить Windows выбрать
        top,                       //координата у - позволить Windows выбрать
        width,                     //ширина - позволить Windows выбрать
        height,                    //высота - позволить Windows выбрать
        HWND_DESKTOP,              //нет родительского окна
        NULL,                      //нет меню
        hThisInst,                 //работа с данным экземпляром программы
        NULL                       //дополнительные аргументы отсутствуют
        );
Ошибок нет, но окно появляется без заголовка.
В чем моя ошибка, подскажите, плз!
Title: Visual Studio 8
Post by: mars on May 18, 2007, 12:20:52
попробуйте заменить
Code: [Select]
char Name[30] = "Наименование предприятия";на
Code: [Select]
TCHAR Name[] = TEXT ("Наименование предприятия");
Title: Visual Studio 8
Post by: arido on May 18, 2007, 17:44:48
ОГРОМНОЕ СПАСИБО!
Все получилось.
Title: Visual Studio 8
Post by: mars on May 19, 2007, 02:52:25
собственно, это была цитата из документации