| View previous topic :: View next topic |
| Author |
Message |
FeyFre
Joined: 07 Aug 2007 Posts: 1907 Location: Vinnitsa, Ukraine
|
Posted: Wed Dec 29, 2010 8:59 pm Post subject: |
|
|
| Quote: | | Поконкретнее - какая ошибка? | R6034(не смог правильно инициализировать CRT)
Причину ошибки выяснил: возникает при попытке подгрузить плагин(либо при автозагрузке, либо при перечислении в окне плагинов. Хотя в при автозагрузке у меня не всегда выскакивает), у которого есть манифест. Но Акел не падает, работает дальше.
Плагин с манифестом с CRT не линкуется вообще, только с user32 и kernel32(манифест туда попал случайно, вероятнее всего при добавления 64-битной платформы студия сделала лишнее).
(Вынужден линковать Акел с libcmt.lib на 32-битной платформе ибо с какого-то перепугу AkelEdit.obj требует @__security_check_cookie@4) |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4680
|
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1907 Location: Vinnitsa, Ukraine
|
Posted: Thu Dec 30, 2010 1:28 pm Post subject: |
|
|
Instructor
Точно! А ведь сам когда-то допер до такого решения... |
|
| Back to top |
|
 |
ABTOP
Joined: 03 Jan 2011 Posts: 16
|
Posted: Tue Jan 04, 2011 11:46 am Post subject: |
|
|
| Где взять plugin XBrackets для версии x64? |
|
| Back to top |
|
 |
se7h
Joined: 28 Sep 2009 Posts: 764 Location: Minsk, Belarus
|
Posted: Tue Jan 04, 2011 12:28 pm Post subject: |
|
|
ABTOP
автор плагина (DV) видимо ещё не выпустил х64 версии |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1907 Location: Vinnitsa, Ukraine
|
|
| Back to top |
|
 |
ABTOP
Joined: 03 Jan 2011 Posts: 16
|
Posted: Tue Jan 04, 2011 1:04 pm Post subject: |
|
|
FeyFre
Нету его там  |
|
| Back to top |
|
 |
DV
Joined: 16 Nov 2006 Posts: 734 Location: Kyiv, Ukraine
|
Posted: Fri Jan 14, 2011 9:21 am Post subject: |
|
|
У меня неумный вопрос... Открыл проект QSearch8x, добавил новую платформу x64 (настройки наследованы от Win32), и при попытке собрать Release x64 выдаёт вот что:
| Quote: | 1>DialogSwitcher.obj : error LNK2001: unresolved external symbol __imp_SendMessageW
1>DialogSwitcher.obj : error LNK2001: unresolved external symbol __imp_ShowCaret
...
1>QSearch.obj : error LNK2001: unresolved external symbol __imp_RegQueryValueExW
1>QSearch.obj : error LNK2001: unresolved external symbol __imp_wsprintfA
...
1>QSearchDlg.obj : error LNK2001: unresolved external symbol __imp_GetWindowLongA
1>QSearchDlg.obj : error LNK2001: unresolved external symbol __imp_CreateWindowExW
... |
Это что за нафиг? |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1907 Location: Vinnitsa, Ukraine
|
Posted: Fri Jan 14, 2011 10:54 am Post subject: |
|
|
DV
Не хватает либ для линковки.
| Code: | 1>DialogSwitcher.obj : error LNK2001: unresolved external symbol __imp_SendMessageW
1>DialogSwitcher.obj : error LNK2001: unresolved external symbol __imp_ShowCaret
...
1>QSearch.obj : error LNK2001: unresolved external symbol __imp_wsprintfA
...
1>QSearchDlg.obj : error LNK2001: unresolved external symbol __imp_GetWindowLongA
1>QSearchDlg.obj : error LNK2001: unresolved external symbol __imp_CreateWindowExW | user32.lib
| Code: | 1>QSearch.obj : error LNK2001: unresolved external symbol __imp_RegQueryValueExW
| advapi32.lib
Я так предполагаю, студия настройки дополнительных либ при переходе через платформу копировать не пожелала(на всякий случай. Я бы тоже не пожелал бы). Я точно не вспомню, было ли у меня такое, или нет.(Только у меня версия студии 9.0, и поведение может быть разным)
PS: не забудьте что для сабклассинга на x64 нужно использовать Get/SetWindowLongPtr |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4680
|
Posted: Fri Jan 14, 2011 4:03 pm Post subject: |
|
|
DV
Возможно папка Lib в путях VS указана для x86. |
|
| Back to top |
|
 |
DV
Joined: 16 Nov 2006 Posts: 734 Location: Kyiv, Ukraine
|
Posted: Fri Jan 14, 2011 6:44 pm Post subject: |
|
|
| Instructor wrote: | | И свой memset вместо "={0};" сделать. |
Насчёт этого поподробнее, пожалуйста
Разве что-то не так с этим кодом:
| Code: | | wchar_t g_szFunctionQSearchW[128] = { 0 }; |
или с этим:
?
Компилятор, вроде, не возражает. |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4680
|
Posted: Fri Jan 14, 2011 7:48 pm Post subject: |
|
|
Возможно какой-либо флаг стоит на использование VCRedist (внешняя зависимость).
| Quote: | | Компилятор, вроде, не возражает. | Компилятор в случае например:
оптимизирует это в memcpy вызов, что при /NODEFAULTLIB вызывает ошибку
| Code: | error LNK2019: unresolved external symbol memset referenced in function CreateDock
|
Также и например
| Code: | AECHARRANGE cr1;
AECHARRANGE cr2;
...
cr1=cr2;
| Заменяется на memcpy.
Выход использовать свои memcpy и memset (код можно взять из StrFunc.h v4.4). |
|
| Back to top |
|
 |
DV
Joined: 16 Nov 2006 Posts: 734 Location: Kyiv, Ukraine
|
Posted: Fri Jan 14, 2011 8:10 pm Post subject: |
|
|
| Instructor wrote: | | Выход использовать свои memcpy и memset (код можно взять из StrFunc.h v4.4). |
Кстати, насчёт этого. То, что я хочу предложить далее, не относится к архитектуре x64, а относится к архитектуре AkelPad и всех его плагинов. По моим наблюдениям, практически все плагины так или иначе используют некоторые стандартные функции из набора StrFunc.h, StackFunc.h и, возможно, WideFunc.h.
Предложение: почему бы не вынести эти функции в отдельный вспомогательный .dll файл? Типа сделать что-то наподобие AkelPad-CRT. Это сразу "облегчило" бы все плагины, которые используют данные функции. |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2523 Location: Киев, Русь
|
Posted: Sat Feb 26, 2011 3:49 pm Post subject: |
|
|
Ставил x64-версию на Win7, следующие наблюдения:
1. Нет отдельно скачиваемого Plugs-пака - плохо.
2. Плаги только с английским интерфейсом - плохо.
3. Устанавливал Akel как обычную прогу (первый пункт при установке); запускаю обычный блокнот Windows, в верхней строке пишет "AkelPad - Блокнот", хотя если посмотреть "О программе", то показывает, что это виндовый notepad.exe... - странно всё это.
4. Ни один из плагов FeyFre не заработал, при вызове пишет "dll соотв. плагина по такому-то пути не может быть открыт", или что-то типа того, хотя все dll там есть (правильные пути).
Не знаю, связано ли с этим, но почему-то на папке с AkelPad'ом установлен замочек, хотя доступ на запись в папку и все вложенные папки/файлы под текущим пользователем имеется. |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4680
|
Posted: Sat Feb 26, 2011 5:11 pm Post subject: |
|
|
VladSh
2. Выберите "Вид->Язык->Русский" и плагины будут на русском.
3. Чудеса "AkelPad" вместо "Безымянный"
4. Когда делал релиз забыл, что у FeyFre dll для x64 в папке Plugsx64. Попробую автоматизировать, чтобы исключить такую ситуацию. AkelPad-4.5.5-x64-setup.exe перезалил. |
|
| Back to top |
|
 |
|