Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

C++ в Visual Studio 2008
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
VSB



Joined: 03 Feb 2005
Posts: 37
Location: Новгород

Post (Separately) Posted: Mon Jul 12, 2010 02:23    Post subject: C++ в Visual Studio 2008 Reply with quote

Хочу написать WCX плагин на с++, IDE - MS VS 2008
Проблема: функции из плагина не вызываются вообще, даже GetPackerCaps()

Вот ткма на англ форуме
http://www.ghisler.ch/board/viewtopic.php?t=26840
Что делать?
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4431
Location: Ростов-Дон

Post (Separately) Posted: Mon Jul 12, 2010 07:28    Post subject: Reply with quote

Я скачал твои исходники, посмотрю, вчера не успел просто.


Короче, насколько я понял, при попытке тотала вызывать GetPackerCaps возникает какая-то ошибка, и он выгружает плагин, а в packer caps ставит 0. Осталось разобраться, почему. Я уже и переключать в Multi-Threaded Debug пробовал, все равно.

Кстати, GetPackerCaps тотал вызывает не при установке плагина, а при открытии диалога упаковки файлов.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4431
Location: Ростов-Дон

Post (Separately) Posted: Mon Jul 12, 2010 09:25    Post subject: Reply with quote

Ага, у тебя в .def-файле не хватало CloseArchive. Как только я добавил ее, сразу все заработало.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
VSB



Joined: 03 Feb 2005
Posts: 37
Location: Новгород

Post (Separately) Posted: Mon Jul 12, 2010 10:56    Post subject: Reply with quote

Точно, спасибо!

Отписался подробнее в той теме
Back to top
View user's profile Send private message
Моторокер



Joined: 06 May 2005
Posts: 1472
Location: г. Пермь (читается Перьмь)

Post (Separately) Posted: Mon Jul 12, 2010 12:25    Post subject: Reply with quote

Список обязательный функций перечислен в writer's reference. Я тоже на чём-то подобном споткнулся, когда начинал писать:
http://www.motorocker.ru/wcx_writers_reference.htm
http://www.motorocker.ru/wcx.dpr.htm

Они должны быть обязательно, даже если не используются.
_________________
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Back to top
View user's profile Send private message
VSB



Joined: 03 Feb 2005
Posts: 37
Location: Новгород

Post (Separately) Posted: Mon Jul 12, 2010 12:47    Post subject: Reply with quote

Всё равно не работает.
Может надо как то по особому экспортировать?
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4431
Location: Ростов-Дон

Post (Separately) Posted: Mon Jul 12, 2010 13:08    Post subject: Reply with quote

VSB wrote:
Всё равно не работает.
Может надо как то по особому экспортировать?

Я в теме на оффоруме написал, что у тебя еще не хватает функции ReadHeader.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
VSB



Joined: 03 Feb 2005
Posts: 37
Location: Новгород

Post (Separately) Posted: Mon Jul 12, 2010 13:17    Post subject: Reply with quote

MVV

Кстати, в гайде ошибка по поводу ReadHeaderEx

Quote:
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
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4431
Location: Ростов-Дон

Post (Separately) Posted: Mon Jul 12, 2010 13:19    Post subject: Reply with quote

Да, действительно, недочетик. Отписался на оффоруме в теме про описания интерфейсов.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
VSB



Joined: 03 Feb 2005
Posts: 37
Location: Новгород

Post (Separately) Posted: Mon Jul 12, 2010 13:23    Post subject: Reply with quote

Кстати, почему обязателен экспорт через EXPORTS и никак через __declspec(dllexport) в декорированом виде?
Back to top
View user's profile Send private message
VSB



Joined: 03 Feb 2005
Posts: 37
Location: Новгород

Post (Separately) Posted: Mon Jul 12, 2010 13:25    Post subject: Reply with quote

И еще, хотелось бы в гайде видеть также порядок вызовов функций для разных сценариев
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4431
Location: Ростов-Дон

Post (Separately) Posted: Mon Jul 12, 2010 14:50    Post subject: Reply with quote

VSB wrote:
Кстати, почему обязателен экспорт через EXPORTS и никак через __declspec(dllexport) в декорированом виде?

Во-первых, у разных компиляторов декорирование различно - причем, оно может быть различным даже для разных версий одного компилятора - ГОСТа на декорирование не существует. Smile
Во-вторых, неважно, какое имя, лишь бы оно было одинаковым для всех плагинов, чтобы можно было легко и быстро получить адрес функции, используя GetProcAddress.
В-третьих, куда приятнее видеть в списке экспортируемых функций читабельные имена, а не кракозябры.
В-четвертых, уже не один десяток лет такая схема используется в ТК.
А экспортировать вроде можно не только через .def-файл (была кажется и какая-то директива для экспорта функции с недекорированным именем).

VSB wrote:
И еще, хотелось бы в гайде видеть также порядок вызовов функций для разных сценариев

Что видеть в гайде - лучше пиши сразу Гислеру здесь. А вообще, есть же примеры плагинов с открытыми исходниками. Было бы желание разобраться в них.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
VSB



Joined: 03 Feb 2005
Posts: 37
Location: Новгород

Post (Separately) Posted: Mon Jul 12, 2010 16:14    Post subject: Reply with quote

Причем тут пример?
просто для отладки полезно знать в каком порядке TC будет вызывать функции
Back to top
View user's profile Send private message
VSB



Joined: 03 Feb 2005
Posts: 37
Location: Новгород

Post (Separately) Posted: Mon Jul 12, 2010 20:01    Post subject: Reply with quote

А есть ли для VC++ замена этого
http://docwiki.embarcadero.com/RADStudio/en/Path_Manipulation_Routines
Back to top
View user's profile Send private message
VSB



Joined: 03 Feb 2005
Posts: 37
Location: Новгород

Post (Separately) Posted: Tue Jul 13, 2010 02:17    Post subject: Reply with quote

Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Написание плагинов для Total Commander All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group