C++ в Visual Studio 2008
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
C++ в Visual Studio 2008
Хочу написать WCX плагин на с++, IDE - MS VS 2008
Проблема: функции из плагина не вызываются вообще, даже GetPackerCaps()
Вот ткма на англ форуме
http://www.ghisler.ch/board/viewtopic.php?t=26840
Что делать?
Проблема: функции из плагина не вызываются вообще, даже GetPackerCaps()
Вот ткма на англ форуме
http://www.ghisler.ch/board/viewtopic.php?t=26840
Что делать?
Я скачал твои исходники, посмотрю, вчера не успел просто.
Короче, насколько я понял, при попытке тотала вызывать GetPackerCaps возникает какая-то ошибка, и он выгружает плагин, а в packer caps ставит 0. Осталось разобраться, почему. Я уже и переключать в Multi-Threaded Debug пробовал, все равно.
Кстати, GetPackerCaps тотал вызывает не при установке плагина, а при открытии диалога упаковки файлов.
Короче, насколько я понял, при попытке тотала вызывать GetPackerCaps возникает какая-то ошибка, и он выгружает плагин, а в packer caps ставит 0. Осталось разобраться, почему. Я уже и переключать в Multi-Threaded Debug пробовал, все равно.
Кстати, GetPackerCaps тотал вызывает не при установке плагина, а при открытии диалога упаковки файлов.
- Моторокер
- Сообщения: 1517
- Зарегистрирован: Пт май 06, 2005 08:22
- Откуда: г. Пермь (читается Перьмь)
- Контактная информация:
Список обязательный функций перечислен в writer's reference. Я тоже на чём-то подобном споткнулся, когда начинал писать:
http://www.motorocker.ru/wcx_writers_reference.htm
http://www.motorocker.ru/wcx.dpr.htm
Они должны быть обязательно, даже если не используются.
http://www.motorocker.ru/wcx_writers_reference.htm
http://www.motorocker.ru/wcx.dpr.htm
Они должны быть обязательно, даже если не используются.
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
ПармаСруб - строительство домов и бань в Перми
MVV
Кстати, в гайде ошибка по поводу ReadHeaderEx
Кстати, в гайде ошибка по поводу ReadHeaderEx
The following functions of the packer plugin interface support Unicode:
OpenArchiveW
ReadHeaderExW
ProcessFileW
SetChangeVolProcW
SetProcessDataProcW
PackFilesW
DeleteFilesW
StartMemPackW
CanYouHandleThisFileW
The following functions do not exist in a Unicode form and must be implemented as Ansi:
ReadHeader - use ReadHeaderEx
CloseArchive
GetPackerCaps
ConfigurePacker
PackToMem
DoneMemPack
PackSetDefaultParams
ReadHeaderEx
Во-первых, у разных компиляторов декорирование различно - причем, оно может быть различным даже для разных версий одного компилятора - ГОСТа на декорирование не существует.VSB писал(а):Кстати, почему обязателен экспорт через EXPORTS и никак через __declspec(dllexport) в декорированом виде?
Во-вторых, неважно, какое имя, лишь бы оно было одинаковым для всех плагинов, чтобы можно было легко и быстро получить адрес функции, используя GetProcAddress.
В-третьих, куда приятнее видеть в списке экспортируемых функций читабельные имена, а не кракозябры.
В-четвертых, уже не один десяток лет такая схема используется в ТК.
А экспортировать вроде можно не только через .def-файл (была кажется и какая-то директива для экспорта функции с недекорированным именем).
Что видеть в гайде - лучше пиши сразу Гислеру здесь. А вообще, есть же примеры плагинов с открытыми исходниками. Было бы желание разобраться в них.VSB писал(а):И еще, хотелось бы в гайде видеть также порядок вызовов функций для разных сценариев
А есть ли для VC++ замена этого
http://docwiki.embarcadero.com/RADStudi ... n_Routines
http://docwiki.embarcadero.com/RADStudi ... n_Routines
Так, вроде нашел
http://msdn.microsoft.com/en-us/library ... S.85).aspx
Теперь осталось разобраться со статической линковкой msvcrt
http://msdn.microsoft.com/en-us/library ... S.85).aspx
Теперь осталось разобраться со статической линковкой msvcrt