crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

4 страниц V  « < 2 3 4  
Ответить в данную темуНачать новую тему
> [arm-mingw32][wince] Компилирование под Windows Mobile, ошибки при компилировании
Алексей1153
  опции профиля:
сообщение 29.6.2010, 12:32
Сообщение #31


фрилансер
******

Группа: Участник
Сообщений: 2946
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Zueuk, может, всё решается скачиванием какого-нибудь обновления ? ))
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Zueuk
  опции профиля:
сообщение 29.6.2010, 12:43
Сообщение #32


Студент
*

Группа: Участник
Сообщений: 21
Регистрация: 10.5.2010
Пользователь №: 1702

Спасибо сказали: 0 раз(а)




Репутация:   0  


Алексей1153, компилятор собирал из исходников, которые скачал через svn. Проверял, свежих обновлений не было.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Zueuk
  опции профиля:
сообщение 2.7.2010, 20:56
Сообщение #33


Студент
*

Группа: Участник
Сообщений: 21
Регистрация: 10.5.2010
Пользователь №: 1702

Спасибо сказали: 0 раз(а)




Репутация:   0  


Спросил еще на другом форуме. Там дали такую подсказку:
Цитата
почитать про name mangling (я об этом внезапно вспомнил, когда не собралось с g++ и собралось с gcc) и обернуть декларацию функции в блок extern "C" {}

Сделал следующее:
#undef Shell_NotifyIcon
extern "C" {
BOOL WINAPI Shell_NotifyIcon(unsigned long, PNOTIFYICONDATAW);
};

Ошибка пропала и приложение собирается. Но не запускается. И не пишет при этом никаких ошибок.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 3.7.2010, 7:24
Сообщение #34


фрилансер
******

Группа: Участник
Сообщений: 2946
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


А GetLastErr() что возвращает?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Zueuk
  опции профиля:
сообщение 3.7.2010, 19:08
Сообщение #35


Студент
*

Группа: Участник
Сообщений: 21
Регистрация: 10.5.2010
Пользователь №: 1702

Спасибо сказали: 0 раз(а)




Репутация:   0  


Алексей1153, приведи пример, как ее можно использовать. Почитал, но что-то не понял про нее.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 3.7.2010, 19:13
Сообщение #36


фрилансер
******

Группа: Участник
Сообщений: 2946
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Опечатался немного

GetLastError()

Когда вызываешь апишную функцию, если всё ок, то GetLastError() после возврата из функции возвращает 0. Иначе - системный код ошибки. По коду иногда становится понятно, куда копать дальше
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Zueuk
  опции профиля:
сообщение 4.7.2010, 17:02
Сообщение #37


Студент
*

Группа: Участник
Сообщений: 21
Регистрация: 10.5.2010
Пользователь №: 1702

Спасибо сказали: 0 раз(а)




Репутация:   0  


Запутался с этими всеми w* .
Пробую вот такую конструкцию для получения кода ошибки (цель - получить код ошибки и вывести его через сообщение):
//проверка на ошибку
    int iLastError = GetLastError();
    const WCHAR* wLastError;
    swprintf(wLastError, "%s", iLastError);
    
    if (iLastError > 0)
    {
    MessageBox(NULL, wLastError, NULL, 0);
    }

Компилятор выдаёт ошибки:
Цитата
trayapp.cpp: In function 'int WinMain(HINSTANCE__*, HINSTANCE__*, WCHAR*, int)':
trayapp.cpp:124: error: invalid conversion from 'const WCHAR*' to 'wchar_t*'
trayapp.cpp:124: error: cannot convert 'const char*' to 'const wchar_t*' for argument '2' to 'int swprintf(wchar_t*, const wchar_t*, ...)'

Не понимаю, откуда он взял 'const char*'? И правильный ход мысли?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 4.7.2010, 17:58
Сообщение #38


фрилансер
******

Группа: Участник
Сообщений: 2946
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Zueuk, что творишь :)

const WCHAR* wLastError;// 1) не инициализировал, 2) не выделил память
swprintf(wLastError, "%s", iLastError);//и шлёпаешь туда строку.


Вылетело бы со свистом!

Потом,
WCHAR wLastError[20];//ты сюда, вроде, собрался записывать. Длину я взял от балды
memset(wLastError,0,sizeof(wLastError));//инитка


а тут попробуй так
swprintf(
   (wchar_t*)wLastError,
    _T("%s"),
   iLastError);


Сообщение отредактировал Алексей1153 - 4.7.2010, 18:00
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Zueuk
  опции профиля:
сообщение 4.7.2010, 20:37
Сообщение #39


Студент
*

Группа: Участник
Сообщений: 21
Регистрация: 10.5.2010
Пользователь №: 1702

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Алексей1153 @ 4.7.2010, 17:58) Link
что творишь :)
В этом пока мало силён. Буду по ходу разбираться.

Сделал по твоему образцу.
    int iLastError = GetLastError();
    WCHAR wLastError[100];
    memset(wLastError, 0, sizeof(wLastError));
    swprintf( (wchar_t*) wLastError, L"%s", iLastError);
    
    MessageBox(NULL, wLastError, NULL, 0);

Кстати, что за конструкция?
(wchar_t*) wLastError

PS И буду признателен, если подскажешь, где про это можно почитать. Сколько гуглил - ничего толкового не видел для чтения.
Сам нашел довольно толковое Link.

Сообщение отредактировал Zueuk - 4.7.2010, 23:28
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 4.7.2010, 22:50
Сообщение #40


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Zueuk @ 5.7.2010, 0:37) Link
Кстати, что за конструкция?
приведение типа в Си стиле
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

4 страниц V  « < 2 3 4
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.12.2025, 10:38