![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Zueuk |
![]() ![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 10.5.2010 Пользователь №: 1702 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Опытные товарищи, есть вопросы.
Использую в Linux (Fedora 11) кросс-компилятор mingw32. А конкретнее, версию для arm (arm-mingw32). При компилировании примера (код примера под спойлером ниже), выдаёт ошибки: Цитата /opt/mingw32ce/bin/arm-mingw32ce-g++ -fno-exceptions -o test_wince.exe test.cpp /tmp/ccdgZQsW.o:test.cpp:(.text+0x58): undefined reference to `CommandBar_Create' /tmp/ccdgZQsW.o:test.cpp:(.text+0x70): undefined reference to `CommandBar_AddAdornments' /tmp/ccdgZQsW.o:test.cpp:(.text+0xa0): undefined reference to `CommandBar_Height' collect2: ld returned 1 exit status make: *** [wince] Ошибка 1 Более подробный вывод ошибок. Раскрывающийся текст
Пример кода, который пробуется: Раскрывающийся текст
Все заголовочные файлы есть и лежат, где нужно. Что за ошибка и как исправить? |
|
|
ViGOur |
![]()
Сообщение
#2
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(Zueuk @ 10.5.2010, 23:03) Link undefined reference to `CommandBar_Create' говорит о том, что компилятор не видит хидер в котором реализован CommandBar_Create.И обрати внимание на: Цитата ignoring nonexistent directory "/opt/mingw32ce/lib/gcc/arm-mingw32ce/4.1.0/../../../../arm-mingw32ce/sys-include" Как я понимаю Commctrl.h должен быть в одной из тех директорий!
ignoring nonexistent directory "../include/w32api" ignoring nonexistent directory "../../include/w32api" |
|
|
Tonal |
![]()
Сообщение
#3
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: ![]() ![]() ![]() |
Хедеры не при чём.
Это ошибки линкера. Он не нашел указанных символов. Судя по названиям они должны лежать в библиотеке comctl32 так что добавь в командную строку -lcomctl32 Скорее всего ещё какие-то либы понадобятся. ![]() |
|
|
Гость_Гость_Zueuk_*_* |
![]()
Сообщение
#4
|
Гости ![]() |
Цитата(ViGOur @ 10.5.2010, 23:08) Link Как я понимаю Commctrl.h должен быть в одной из тех директорий! Спасиалньо проверил - есть такое. Цитата(Tonal @ 11.5.2010, 8:23) Link Это ошибки линкера. Он не нашел указанных символов. Судя по названиям они должны лежать в библиотеке comctl32 так что добавь в командную строку -lcomctl32 Вот это попробую. |
|
|
Zueuk |
![]()
Сообщение
#5
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 10.5.2010 Пользователь №: 1702 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(Гость_Zueuk_* @ 11.5.2010, 14:22) Link Цитата(ViGOur @ 10.5.2010, 23:08) Link Как я понимаю Commctrl.h должен быть в одной из тех директорий! Спасиалньо проверил - есть такое. Цитата(Tonal @ 11.5.2010, 8:23) Link Это ошибки линкера. Он не нашел указанных символов. Судя по названиям они должны лежать в библиотеке comctl32 так что добавь в командную строку -lcomctl32 Вот это попробую. Забыл залогиниться. PS "Спасиалньо" читать, как "специально". |
|
|
Zueuk |
![]()
Сообщение
#6
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 10.5.2010 Пользователь №: 1702 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(Tonal @ 11.5.2010, 8:23) Link Хедеры не при чём. Это ошибки линкера. Он не нашел указанных символов. Судя по названиям они должны лежать в библиотеке comctl32 так что добавь в командную строку -lcomctl32 Скорее всего ещё какие-то либы понадобятся. ![]() А верно ли, что прописать -lcomctl32? Посмотрел - такого заголовочного файла нет. И компилятор выдаёт об этом ошибку: Цитата make wince /opt/mingw32ce/bin/arm-mingw32ce-g++ -fno-exceptions -lcomctl32 -o test_wince.exe test.cpp /opt/mingw32ce/lib/gcc/arm-mingw32ce/4.1.0/../../../../arm-mingw32ce/bin/ld: cannot find -lcomctl32 collect2: ld returned 1 exit status Попробовал -lcommctrl, но ошибка все та же, что выше. Приведу свой make-файл. Может в нём ошибся. Раскрывающийся текст
Вот содержимое папки include: Раскрывающийся текст
|
|
|
ViGOur |
![]()
Сообщение
#7
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(Zueuk @ 11.5.2010, 20:26) Link А верно ли, что прописать -lcomctl32? Посмотрел - такого заголовочного файла нет. И компилятор выдаёт об этом ошибку: -lcommctrl - это библиотечка commctrl.lib, глянь где она у тебя лежит...
|
|
|
Zueuk |
![]() ![]()
Сообщение
#8
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 10.5.2010 Пользователь №: 1702 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(ViGOur @ 12.5.2010, 14:53) Link -lcommctrl - это библиотечка commctrl.lib, глянь где она у тебя лежит... Забавно, из библиотек только SDL.lib в двух местах (копировал вручную, пробовал пример работы с SDL). Получается, надо брать исходники и компилировать целиком и с библиотеками? А как тогда компилируются простые исходников? Им же не нужны для этого бибилиотеки, а принцип такой же, что и для чуть усложненных исходников? Ведь, в заголовочных файлах описаны прототипы функций, константы и прочее. Подозреваю, что мои вопросы очень просты для опытных людей. Если подскажете, где прочитать, почитаю. |
|
|
Zueuk |
![]()
Сообщение
#9
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 10.5.2010 Пользователь №: 1702 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
В Гугле не забанен, конечно. А краткое наведение на путь очень помогло бы.
|
|
|
SandySandy |
![]()
Сообщение
#10
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 14.5.2010 Пользователь №: 1714 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(Zueuk @ 10.5.2010, 23:03) Link Использую в Linux (Fedora 11) кросс-компилятор mingw32. А конкретнее, версию для arm (arm-mingw32). это не mingw32ce? что то я быстрым поиском по google + arm-mingw32 + fedora не нашел ничего |
|
|
Zueuk |
![]()
Сообщение
#11
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 10.5.2010 Пользователь №: 1702 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(SandySandy @ 14.5.2010, 3:51) Link Цитата(Zueuk @ 10.5.2010, 23:03) Link Использую в Linux (Fedora 11) кросс-компилятор mingw32. А конкретнее, версию для arm (arm-mingw32). это не mingw32ce? что то я быстрым поиском по google + arm-mingw32 + fedora не нашел ничего Оно самое. Сам такое искал, конкретного ничего нет, поэтому скачал уже собранное. Похоже, придется качать исходники и все вручную компилировать. |
|
|
Tonal |
![]()
Сообщение
#12
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: ![]() ![]() ![]() |
Библиотека libcomctl32.a входит в состав пакета w32api - это для обычной вынь32-шной мингвы.
Для WinCE-ARM нужно искать аналогичный пакет. Хотя если хедеры присутствуют, то и либки должны. Похоже на какой-то бардак в путях поиска линкера... |
|
|
Zueuk |
![]()
Сообщение
#13
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 10.5.2010 Пользователь №: 1702 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(Tonal @ 20.5.2010, 7:54) Link Библиотека libcomctl32.a входит в состав пакета w32api - это для обычной вынь32-шной мингвы. Для WinCE-ARM нужно искать аналогичный пакет. Хотя если хедеры присутствуют, то и либки должны. Похоже на какой-то бардак в путях поиска линкера... Спасибо за ответ. Буду разбираться. |
|
|
SandySandy |
![]()
Сообщение
#14
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 14.5.2010 Пользователь №: 1714 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
grep CommandBar_Create /opt/mingw32ce/arm-mingw32ce/lib/*
Бинарный файл /opt/mingw32ce/arm-mingw32ce/lib/libcommctrl.a совпадает |
|
|
Zueuk |
![]()
Сообщение
#15
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 10.5.2010 Пользователь №: 1702 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(SandySandy @ 30.5.2010, 16:28) Link grep CommandBar_Create /opt/mingw32ce/arm-mingw32ce/lib/* Не понял Вашу фразу.Бинарный файл /opt/mingw32ce/arm-mingw32ce/lib/libcommctrl.a совпадает А по своему вопросу - вроде разобрался. 1. Скачал и собрал cegcc. 2. Не правильно указывал опции для компилятора. -lcommctrl нужно было ставить в опции библиотек. А ставил к флагам. Приложил исправленный Makefile. Раскрывающийся текст Цитата TARGET= test CC_WINCE= /opt/mingw32ce/bin/arm-mingw32ce-g++ LIB_WINCE= -I/opt/mingw32ce/arm-mingw32ce/include -L/opt/mingw32ce/arm-mingw32ce/lib -lcommctrl #CFLAGS_WINCE= -fno-exceptions -finput-charset="cp1251" CFLAGS_WINCE= -fno-exceptions wince: # Compiling for wince $(CC_WINCE) $(CFLAGS_WINCE) -o $(TARGET)_wince.exe $(TARGET).cpp $(LIB_WINCE) /opt/mingw32ce/bin/arm-mingw32ce-strip $(TARGET)_wince.exe clean: rm -f $(TARGET)_linux $(TARGET)_win32.exe $(TARGET)_wince.exe |
|
|
Zueuk |
![]()
Сообщение
#16
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 10.5.2010 Пользователь №: 1702 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Продолжу задавать глупые вопросы.
Взял простой пример для того, чтобы скомпилировать. Компилировать и мне выдаётся ошибка: Раскрывающийся текст Цитата make wince /opt/mingw32ce/bin/arm-mingw32ce-g++ -fno-exceptions -o trayapp_wince.exe trayapp.cpp -I/opt/mingw32ce/arm-mingw32ce/include -L/opt/mingw32ce/arm-mingw32ce/lib -lcommctrl -laygshell -lceshell /tmp/ccYBKpQW.o:trayapp.cpp:(.text+0x68): undefined reference to `Shell_NotifyIconW' collect2: ld returned 1 exit status make: *** [wince] Ошибка 1 Цитата grep Shell_NotifyIconW * Получается, что определение есть.shellapi.h:BOOL WINAPI Shell_NotifyIconW(DWORD,PNOTIFYICONDATAW); shellapi.h:#define Shell_NotifyIcon Shell_NotifyIconW Вопрос: почему компилятор игнорирует заголовочный файл с определением функции и ругается? PS Прилагаю исходники примера, которые пытаюсь скомпилировать. Исходник взял достаточно простой, без специальных заточек для MSVC.
Прикрепленные файлы
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#17
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
т.к. ругается линкер, то смотреть надо не заголовочный файл, линкер на него не смотрит, он смотрит a-файл. видимо в нём, что-то не сходится с заголовочником.
|
|
|
Алексей1153 |
![]()
Сообщение
#18
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Пальцем в небо: а если студийный #include "stdafx.h" закоментить ? Или Qt прекомпиляцию тоже поддерживает ? (сомневаюсь)
|
|
|
Zueuk |
![]()
Сообщение
#19
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 10.5.2010 Пользователь №: 1702 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(Litkevich Yuriy @ 24.6.2010, 21:26) Link т.к. ругается линкер, то смотреть надо не заголовочный файл, линкер на него не смотрит, он смотрит a-файл. видимо в нём, что-то не сходится с заголовочником. А возможно это как-то проверить? Даже и не думал, что такое возможно.Цитата(Алексей1153 @ 24.6.2010, 22:19) Link Пальцем в небо: а если студийный #include "stdafx.h" закоментить ? Или Qt прекомпиляцию тоже поддерживает ? Зачем? В stdafx.h лишнего почти ничего нет. Так что он не мешает.А вопрос про Qt не понял, так как о нем речи не было. |
|
|
Алексей1153 |
![]()
Сообщение
#20
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(Zueuk @ 25.6.2010, 14:30) Link А вопрос про Qt не понял, так как о нем речи не было. Это я тормознул ) |
|
|
Zueuk |
![]()
Сообщение
#21
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 10.5.2010 Пользователь №: 1702 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Продолжаю свои изыскания.
Нашел, как просмотреть библиотеки на наличие функций. Делается это с помощью команды strings. Раскрывающийся текст Цитата [zueuk@zueuk lib]$ /opt/mingw32ce/bin/arm-mingw32ce-strings -f /opt/mingw32ce/arm-mingw32ce/lib/lib*.a |grep Shell_NotifyIcon /opt/mingw32ce/arm-mingw32ce/lib/libcoredll6.a: Shell_NotifyIcon /opt/mingw32ce/arm-mingw32ce/lib/libcoredll6.a: __imp_Shell_NotifyIcon /opt/mingw32ce/arm-mingw32ce/lib/libcoredll6.a: Shell_NotifyIcon /opt/mingw32ce/arm-mingw32ce/lib/libcoredll6.a: Shell_NotifyIcon /opt/mingw32ce/arm-mingw32ce/lib/libcoredll6.a: __imp_Shell_NotifyIcon /opt/mingw32ce/arm-mingw32ce/lib/libcoredll.a: Shell_NotifyIcon /opt/mingw32ce/arm-mingw32ce/lib/libcoredll.a: __imp_Shell_NotifyIcon /opt/mingw32ce/arm-mingw32ce/lib/libcoredll.a: Shell_NotifyIcon /opt/mingw32ce/arm-mingw32ce/lib/libcoredll.a: Shell_NotifyIcon /opt/mingw32ce/arm-mingw32ce/lib/libcoredll.a: __imp_Shell_NotifyIcon |
|
|
Iron Bug |
![]()
Сообщение
#22
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
проверить не могу, но есть у меня мысля, что не указаны у тебя какие-то макросы для CE
например, в сети есть такие куски кода:
(это из кода порта commctl) попробуй вот это самое _WIN32_WCE твоему компилеру указать. вдруг сожрёт. Сообщение отредактировал Iron Bug - 27.6.2010, 0:05 |
|
|
Zueuk |
![]()
Сообщение
#23
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 10.5.2010 Пользователь №: 1702 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Указал компилятору эту опцию как -D_WIN32_WCE=0x400. Дополнительно еще указал -D_WIN32_IE=0x400. Ошибка все равно осталась.
Кстати, функция находится в двух библиотеках: libcoredll.a, libcoredll6.a . Указывал обе (как -lcoredll и -lcoredll6, вместе и отдельно), но ошибка осталась. Видимо, придется как-то патчить библиотеки. Переборщил с тэгом жирности. |
|
|
Zueuk |
![]()
Сообщение
#24
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 10.5.2010 Пользователь №: 1702 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Посмотрел исходники. На сколько понял, все указано нормально и корректно. Подскажите, что еще можно попробовать?
|
|
|
Алексей1153 |
![]()
Сообщение
#25
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Судя по Link,
Требования Microsoft Windows CE 5.0 или более поздние версии. Файл заголовка: объявлен в файле Afxext.h. Порыскай в windows.h и commctrl.h - а там сообще есть такой инклуд? Или просто заинклудь его после windows.h а ещё так, может
Сообщение отредактировал Алексей1153 - 28.6.2010, 19:28 |
|
|
Zueuk |
![]()
Сообщение
#26
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 10.5.2010 Пользователь №: 1702 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Алексей1153,
Ты невнимательно прочитал последние сообщения. CommandBar меня не интересует. Меня интересует функция Shell_NotifyIcon. В исходнике (архив выкладывал) она используется. В заголовочных файлах и в библиотеках эта функция есть. Так как в WinCE используется Unicode, то ссылается в ошибках на функцию Shell_NotifyIconW. Указываю различные опции для компилятора, но ошибка остаётся. Как уже опоминули, это выдаёт линкер и смысл такой, что не находит эту функцию в библиотеке. Хотя она там есть (выше проверял это). Например, вот очередной вывод с твоими вариантами -D_WIN32_WCE=0x500 и -D_WIN32_IE=0x600: Раскрывающийся текст Цитата make wince /opt/mingw32ce/bin/arm-mingw32ce-g++ -D_WIN32_WCE=0x600 -D_WIN32_IE=0x600 -fno-exceptions -o trayapp_wince.exe trayapp.cpp -I/opt/mingw32ce/arm-mingw32ce/include -L/opt/mingw32ce/arm-mingw32ce/lib -lcommctrl -laygshell -lcoredll /tmp/ccXwdO3j.o:trayapp.cpp:(.text+0x70): undefined reference to `Shell_NotifyIconW' collect2: ld returned 1 exit status make: *** [wince] Ошибка 1 |
|
|
Алексей1153 |
![]()
Сообщение
#27
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Zueuk, я как предположение говорю, точно сказать не могу (
Насчёт Цитата(Zueuk @ 29.6.2010, 0:54) Link вариантами -D_WIN32_WCE=0x500 и -D_WIN32_IE=0x600: я предлагал не так , а определить дефайны перед инклудами. Предполагаю по аналогии с одним случаем: искал как-то для трея, как показать сообщение не в прямоугольнике, а в виде облака. И оказалось, что студия по умолчанию делает константы WINVER и _WIN32_WINNT == 0x400, а где-то в пучинах MS-кода этот дефайн с таким значением не открывал доступ к облаку. В итоге, в класса для работы с треем у меня красуется напоминалка
Ну и не сочти за рекламу, зайди на сайт из моего профиля - там задай вопрос |
|
|
Zueuk |
![]()
Сообщение
#28
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 10.5.2010 Пользователь №: 1702 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(Алексей1153 @ 29.6.2010, 6:13) Link а определить дефайны перед инклудами И так пробовал, а компилятор ругался - говорит, уже было ранее определение. Возможно, я не верно указывал.Указал вот так: Ошибка осталась.Цитата(Алексей1153 @ 29.6.2010, 6:13) Link зайди на сайт из моего профиля Этот сайт знаю, спасибо, напомнил. Как-то помог он мне.Посмотрел - не нашел ни одной темы, чтобы использовали cegcc. Если бы кто использовал, можно было быстрее найти ошибку. |
|
|
Алексей1153 |
![]()
Сообщение
#29
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(Zueuk @ 29.6.2010, 11:59) Link а компилятор ругался - говорит, уже было ранее определение. Возможно, я не верно указывал а ругался на введённый тобой дефайн или внутри стандартных инклудов ? А то разопредели
Цитата(Zueuk @ 29.6.2010, 11:59) Link Посмотрел - не нашел ни одной темы, чтобы использовали cegcc. Да, я тоже не припомню. Но ничто не мешает создать новую тему |
|
|
Zueuk |
![]()
Сообщение
#30
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 10.5.2010 Пользователь №: 1702 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(Алексей1153 @ 29.6.2010, 9:08) Link А то разопредели Попробовал оба варианта, с определением и с распределением. Ошибка осталась. Уже на принцип пойду, чтоб разобраться. Ведь какая-то глупая ошибка, из-за которой дальше не могу продвинуться. И никто не гарантирует, что в дальнейшем такое не повториться. И тогда поможет опыт решения похожей ошибки. Цитата(Алексей1153 @ 29.6.2010, 9:08) Link Но ничто не мешает создать новую тему Согласен.
|
|
|
Алексей1153 |
![]()
Сообщение
#31
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Zueuk, может, всё решается скачиванием какого-нибудь обновления ? ))
|
|
|
Zueuk |
![]()
Сообщение
#32
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 10.5.2010 Пользователь №: 1702 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Алексей1153, компилятор собирал из исходников, которые скачал через svn. Проверял, свежих обновлений не было.
|
|
|
Zueuk |
![]()
Сообщение
#33
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 10.5.2010 Пользователь №: 1702 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Спросил еще на другом форуме. Там дали такую подсказку:
Цитата почитать про name mangling (я об этом внезапно вспомнил, когда не собралось с g++ и собралось с gcc) и обернуть декларацию функции в блок extern "C" {} Сделал следующее:
Ошибка пропала и приложение собирается. Но не запускается. И не пишет при этом никаких ошибок. |
|
|
Алексей1153 |
![]()
Сообщение
#34
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
А GetLastErr() что возвращает?
|
|
|
Zueuk |
![]()
Сообщение
#35
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 10.5.2010 Пользователь №: 1702 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Алексей1153, приведи пример, как ее можно использовать. Почитал, но что-то не понял про нее.
|
|
|
Алексей1153 |
![]()
Сообщение
#36
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Опечатался немного
GetLastError() Когда вызываешь апишную функцию, если всё ок, то GetLastError() после возврата из функции возвращает 0. Иначе - системный код ошибки. По коду иногда становится понятно, куда копать дальше |
|
|
Zueuk |
![]()
Сообщение
#37
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 10.5.2010 Пользователь №: 1702 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Запутался с этими всеми w* .
Пробую вот такую конструкцию для получения кода ошибки (цель - получить код ошибки и вывести его через сообщение):
Компилятор выдаёт ошибки: Цитата 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 |
![]()
Сообщение
#38
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2944 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Zueuk, что творишь
![]()
Вылетело бы со свистом! Потом,
а тут попробуй так
Сообщение отредактировал Алексей1153 - 4.7.2010, 18:00 |
|
|
Zueuk |
![]()
Сообщение
#39
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 10.5.2010 Пользователь №: 1702 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(Алексей1153 @ 4.7.2010, 17:58) Link что творишь В этом пока мало силён. Буду по ходу разбираться.![]() Сделал по твоему образцу.
Кстати, что за конструкция?
PS Сам нашел довольно толковое Link. Сообщение отредактировал Zueuk - 4.7.2010, 23:28 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#40
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(Zueuk @ 5.7.2010, 0:37) Link Кстати, что за конструкция? приведение типа в Си стиле
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 11.8.2025, 6:13 |