Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2010, 22:19   #1
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию Разработка подключаемого модуля к файловому менеджеру FAR.

Кто-нибудь писал модуль для подключения к файловому менеджеру FAR?
Подскажите пожалуйста хоть самый примитивный, просто я не сталкивался с этим никогда. Заранее благодарю за ответ.
Syltan вне форума Ответить с цитированием
Старый 11.02.2010, 22:50   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

тут - были ?
и тут (там можно справку/описание взять) ?

А сам Far установлен?
в папку "...\Program Files\Far\PlugDoc" ходили?

Последний раз редактировалось Serge_Bliznykov; 11.02.2010 в 22:53.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.02.2010, 23:48   #3
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию

У меня портативеый фар, по этой ссылке качал: http://depositfiles.com/ru/files/h60aneuab
А какой-то код, хотя б небольшой, но чтоб работал с коменатрием есть? По этим ссылкам вроде не то и половина битых.

Последний раз редактировалось Syltan; 11.02.2010 в 23:55.
Syltan вне форума Ответить с цитированием
Старый 12.02.2010, 06:31   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Syltan Посмотреть сообщение
У меня портативеый фар, по этой ссылке качал: http://depositfiles.com/ru/files/h60aneuab
А какой-то код, хотя б небольшой, но чтоб работал с коменатрием есть? По этим ссылкам вроде не то и половина битых.
не понимаю, в чём проблема скачать и поставить полный Far, в котором есть и примеры, и необходимые заголовочные файлы?!

вот, выдернул парочку исходников прямо из СТАНДАРТНОЙ поставки Far...

ну и файл помощи, который можно было скачать по ссылкам..
Вложения
Тип файла: rar FarCodeExamples.rar (17.0 Кб, 15 просмотров)
Тип файла: zip pluginsr_hlp.zip (152.6 Кб, 13 просмотров)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.02.2010, 22:23   #5
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию

Попробовал скачать, но ничего не дало, не получилось подключит на поративный фар-менеджер,нужно понять смысл как происходит подключение длл к файловому менеджеру фар. Вот прочитал статью по этой ссылке:http://www.interface.ru/home.asp?artId=22198
Попробовал создать проект, но код не компилится. Плагин должен получать список открытых окон Windows.

Компилю на студии 2008. Проект создаю типа "Win32 Project dll.

Вот содержимое файла simplefp.cpp :
Код:
/*
* SimpleFP - простой plug-in к Far-у. (С) 2000 Phoenix, Moscow
*/
#include <stdio.h> // для вызова sprintf
#include <windows.h> // для функций Windows
#include "plugin.hpp" // для функций Far
#define PLUGIN_NAME "Open windows" // Название plug-in-а
#define WINDOW_HEAD "Open windows list" // Заголовок меню

//
// Описываем функции Far, которые с которыми мы работаем.
//
extern "C" {
void WINAPI _export SetStartupInfo(struct PluginStartupInfo *Info);
HANDLE WINAPI _export OpenPlugin(int OpenFrom,int Item);
void WINAPI _export GetPluginInfo(struct PluginInfo *Info);
};

static struct PluginStartupInfo Info; // Информация о нашем plug-in-е
//
// Информация о модуле определена нами в структуре Info
//

void WINAPI _export SetStartupInfo(struct PluginStartupInfo *Info) {
::Info=*Info;
}

// Эта функция вызывается для получения информации о plug-in.
// Мы должны заполнить поля структуры Info.
//
void WINAPI _export GetPluginInfo(struct PluginInfo *Info) {
Info->StructSize=sizeof(*Info); // Размер структуры Info
Info->Flags=0; // Это нам не нужно
Info->DiskMenuStringsNumber=0; // Это нам тоже не нужно

// Определяем строку с названием модуля
static char *PluginMenuStrings[1]; 
PluginMenuStrings[0]= PLUGIN_NAME;
// Определяем название plug-in модуля

Info->PluginMenuStrings=PluginMenuStrings;
Info->PluginMenuStringsNumber=sizeof(PluginMenuStrings)/
sizeof(PluginMenuStrings[0]);
Info->PluginConfigStringsNumber=0; // Это нам не нужно
}

// Эта функция вызывается при запуске plug-in модуля.
//
HANDLE WINAPI _export OpenPlugin(int OpenFrom,int Item) {
HWND hwnd; // Используем для получения handle
char p[128], o[128]; // Для создания строк меню
int i=0; // Счетчик
struct FarMenuItem MenuItems[64]; // Описание меню, которое
// создаст для нас Far
memset(MenuItems,0,sizeof(MenuItems)); // Инициализируем наше меню
MenuItems[0].Selected=TRUE;
hwnd = GetDesktopWindow(); // Получаем handle для desktop
hwnd = GetWindow(hwnd, GW_CHILD); // Получаем его handle
while (hwnd !=0) { // Пока оно не последнее
hwnd = GetWindow(hwnd, GW_HWNDNEXT); // получим handle окна
GetWindowText(hwnd,p,128); // и его заголовок
if (strlen(p)>0) { // если заголовок есть
sprintf(o,"%0.8xld %s", hwnd, p); // сделаем строчку
// скопируем эту строчку в массив MenuItems
strcpy(MenuItems[i++].Text, o); 
}
}
// вызываем созданное нами меню, получаем номер выбранного
// пункта - MenuCode
//
int MenuCode=Info.Menu(Info.ModuleNumber, 
-1,-1,0,
FMENU_AUTOHIGHLIGHT/FMENU_WRAPMODE,
WINDOW_HEAD,
NULL,
"Menu content",
NULL,
NULL,
MenuItems,
i);
return(INVALID_HANDLE_VALUE);
}
Файл simplefp.def
Код:
LIBRARY
EXPORTS
GetPluginInfo=_GetPluginInfo@4
OpenPlugin=_OpenPlugin@8
SetStartupInfo=_SetStartupInfo@4
При компиляции файла спп, останавливается на строке:

Код:
Info->PluginMenuStrings=PluginMenuStrings;
Ошибка: c:\documents and settings\kasper\мои документы\visual studio 2008\projects\simplefp\simplefp\sim plefp.cpp(41) : error C2440: '=' : cannot convert from 'char *[1]' to 'const wchar_t *const *'


Мой проект, как я делал, лежит по ссылке, вместе с портативным фаром, к котрому пытаюсь подключить: http://www.sharemania.ru/0293183

Последний раз редактировалось Syltan; 14.02.2010 в 22:30.
Syltan вне форума Ответить с цитированием
Старый 15.02.2010, 00:47   #6
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Project->Properties->Configuration properties->Character Set->use Multi-Byte Character Set
MaTBeu вне форума Ответить с цитированием
Старый 15.02.2010, 19:32   #7
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию

Всё равно останавливается на том же месте. Вот отметил как вы сказали,ничего не дало.
Изображения
Тип файла: jpg clip_image002.jpg (43.5 Кб, 60 просмотров)
Syltan вне форума Ответить с цитированием
Старый 18.02.2010, 14:37   #8
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию

Подскажите плиз,как исправить, очень нужно.
Syltan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть ли возможность выполнить код при инициализации подключаемого модуля? shurik_7866 Общие вопросы C/C++ 0 07.12.2009 22:59
Разработка подключаемого модуля к файловому менеджеру FAR prikolist Общие вопросы C/C++ 7 03.05.2009 13:36
Создание модуля Deight Общие вопросы Delphi 20 31.12.2008 15:34
Невозможное удаление подключаемого модуля! FoREX Помощь студентам 2 04.07.2007 12:46