Здравствуйте ув.Разработчики! Помогите с формой в C++ Builde

Здесь обсуждаются технические аспекты создания дополнений.
Аватара пользователя
Jenya-Grin
Сообщения: 356
Зарегистрирован: 20:30, 22.09.2011
Откуда: Украина, г.Бердичев

Здравствуйте ув.Разработчики! Помогите с формой в C++ Builde

Сообщение Jenya-Grin »

У меня есть примерчик плагина "Smiley" - это форма в окне чата.
Но он написан на Delphi.

А я изучаю C++, пишу в Билдере :idea:

Дайте пожалуйста какой-то примерчик
для Билдера с такой же формой в окне чата.

Желание сделать пару графических плагинов огромное.
Без вас мне не справится.
Cilvay
Сообщения: 816
Зарегистрирован: 14:55, 16.06.2008

Re: Здравствуйте ув.Разработчики! Помогите с формой в C++ Bu

Сообщение Cilvay »

делай так же как в делфи - тупо портируй код.
Берешь строку из делфи и переписываешь тоже самое с синтаксисом си. Должно работать.
Исходник примера напрямую с билдера портирован в делфи
Аватара пользователя
Jenya-Grin
Сообщения: 356
Зарегистрирован: 20:30, 22.09.2011
Откуда: Украина, г.Бердичев

Re: Здравствуйте ув.Разработчики! Помогите с формой в C++ Bu

Сообщение Jenya-Grin »

Cilvay писал(а):делай так же как в делфи - тупо портируй код.
Берешь строку из делфи и переписываешь тоже самое с синтаксисом си. Должно работать.
Исходник примера напрямую с билдера портирован в делфи
Вот допишу плагин и попробую!

Отпишусь.
Аватара пользователя
Jenya-Grin
Сообщения: 356
Зарегистрирован: 20:30, 22.09.2011
Откуда: Украина, г.Бердичев

Помогите с формой в C++ Builder

Сообщение Jenya-Grin »

Ребята я застрял на 1 моменте.

Вот у меня 2 архива: А_Delphi , B_C++ ...

Из А я добавлял строчки в B,
а в А удалял чтоб не путаться, чтоб видеть что осталось портировать.
Да застрял на 1 месте.

Помогите кто может. Вот вылаживаю 2 архива,
в А_Delphi только 1 файл PAS - тут только то что осталось добавить в B_C++.

IDE: C++ Builder 2010
a_Delphi.rar
То что осталось добавить для B_C++
(1.28 КБ) 490 скачиваний
b_C++.rar
А вот сюда вставить из A_Delphi
(7.85 КБ) 484 скачивания
Maxim Mirgorodsky
Администратор
Сообщения: 6867
Зарегистрирован: 09:56, 27.06.2005

Re: Здравствуйте ув.Разработчики! Помогите с формой в C++ Bu

Сообщение Maxim Mirgorodsky »

Давайте вопросы конкретизируем. Не думаю, что пользователи будут загружать чужие исходники и в них что-то править.

Какая стоит задача? С чем именно сложность? Что не получается?
Аватара пользователя
Jenya-Grin
Сообщения: 356
Зарегистрирован: 20:30, 22.09.2011
Откуда: Украина, г.Бердичев

Re: Здравствуйте ув.Разработчики! Помогите с формой в C++ Bu

Сообщение Jenya-Grin »

Код: Выделить всё

function CallWndProcHookProc(CODE, WParam, LParam: DWORD): DWORD; stdcall;
var _CwpStruct : ^TCWPStruct;
begin
  try
    _CwpStruct := Pointer(LParam);
    case _CwpStruct.message of
      WM_SIZE :
        begin
          if Assigned(form1) and (form1.ParentChanHandle = _CwpStruct.hwnd) then
            FixWindowPos(form1);
        end;
    end;
  finally
    Result := CallNextHookEx(CallWndProcHookHandle, code, WParam, LParam);
  end;
end;

Вот эту функцию перевести немогу :(
Maxim Mirgorodsky
Администратор
Сообщения: 6867
Зарегистрирован: 09:56, 27.06.2005

Re: Здравствуйте ув.Разработчики! Помогите с формой в C++ Bu

Сообщение Maxim Mirgorodsky »

Что именно в этой функции?
Аватара пользователя
Jenya-Grin
Сообщения: 356
Зарегистрирован: 20:30, 22.09.2011
Откуда: Украина, г.Бердичев

Re: Здравствуйте ув.Разработчики! Помогите с формой в C++ Bu

Сообщение Jenya-Grin »

Maxim Mirgorodsky писал(а):Что именно в этой функции?
Ну у меня с самого начала вот с этой строкой
var
_CwpStruct : ^TCWPStruct; возникла проблема.
Конвертирую в c++ так:
сначала тип переменной пишу, потом имя:

^TCWPStruct _CwpStruct;

И компилятор ругается :(
Аватара пользователя
Jenya-Grin
Сообщения: 356
Зарегистрирован: 20:30, 22.09.2011
Откуда: Украина, г.Бердичев

Re: Здравствуйте ув.Разработчики! Помогите с формой в C++ Bu

Сообщение Jenya-Grin »

Вот застрял тут. Первую строку перевести немогу.
Блин, мне очень трудно портировать код....

Код: Выделить всё

  try
    _CwpStruct := Pointer(LParam);
	case _CwpStruct.message of
      WM_SIZE :
		begin
          if Assigned(form1) and (form1.ParentChanHandle = _CwpStruct.hwnd) then
            FixWindowPos(form1);
        end;
    end;
  finally
    Result := CallNextHookEx(CallWndProcHookHandle, code, WParam, LParam);
  end;
Может кто переведёт весь плагин, $ заплачу немного
Аватара пользователя
Jenya-Grin
Сообщения: 356
Зарегистрирован: 20:30, 22.09.2011
Откуда: Украина, г.Бердичев

Re: Здравствуйте ув.Разработчики! Помогите с формой в C++ Bu

Сообщение Jenya-Grin »

Почему все на Delphi пишут тут, незнаю...
Как по мне, то C++ удобнее в раза 3, и как-то воспринимается легче.
Cilvay
Сообщения: 816
Зарегистрирован: 14:55, 16.06.2008

Re: Здравствуйте ув.Разработчики! Помогите с формой в C++ Bu

Сообщение Cilvay »

Jenya-Grin писал(а):Почему все на Delphi пишут тут, незнаю...
Как по мне, то C++ удобнее в раза 3, и как-то воспринимается легче.
100500 готовых компонентов, простой язык и высочайшая скорость разработки. Минусов нет
Аватара пользователя
SV
Сообщения: 797
Зарегистрирован: 00:11, 06.09.2010
Откуда: Киров

Re: Здравствуйте ув.Разработчики! Помогите с формой в C++ Bu

Сообщение SV »

Cilvay писал(а):
Jenya-Grin писал(а):Почему все на Delphi пишут тут, незнаю...
Как по мне, то C++ удобнее в раза 3, и как-то воспринимается легче.
100500 готовых компонентов, простой язык и высочайшая скорость разработки. Минусов нет
На вкус и цвет среда разработки разная. По мне проще делфи, вот решил сейчас изучить C#.
В C# понравился один момент: проекты WPF, гибкость настройки визуальных эффектов на форме.
Но в делфях любой проект будет быстрее сделать. По этому я и не собираюсь отказываться полностью от делфей.
Аватара пользователя
Jenya-Grin
Сообщения: 356
Зарегистрирован: 20:30, 22.09.2011
Откуда: Украина, г.Бердичев

Re: Здравствуйте ув.Разработчики! Помогите с формой в C++ Bu

Сообщение Jenya-Grin »

Код: Выделить всё

function CallWndProcHookProc(CODE, WParam, LParam: DWORD): DWORD; stdcall;
var _CwpStruct : ^TCWPStruct;
begin
  try
    _CwpStruct := Pointer(LParam);
Теперь вот тут застрял: :?

_CwpStruct := Pointer(LParam);
Аватара пользователя
Jenya-Grin
Сообщения: 356
Зарегистрирован: 20:30, 22.09.2011
Откуда: Украина, г.Бердичев

Re: Здравствуйте ув.Разработчики! Помогите с формой в C++ Bu

Сообщение Jenya-Grin »

Код: Выделить всё

BOOL PluginStart(DWORD dwThisPluginID, typeCommFortProcess func1, typeCommFortGetData func2)
{
	dwPluginID = dwThisPluginID;
	CommFortProcess = func1;
	CommFortGetData = func2;

	ChatWindow = FindWindow("TfChatClient", NULL);
	ChannelsPanel = FindWindowEx(ChatWindow, 0, "TPanel", NULL);
	if ( CallWndProcHookHandle == 0 )
	{
		CallWndProcHookHandle = SetWindowsHookEx(WH_CALLWNDPROC, *CallWndProcHookProc, HInstance, GetCurrentThreadId() );
	}
	else
	{
	  return FALSE;
	  exit;
	}

	FHeight = 55;

	return TRUE;
}


Теперь вот тут неладное:

Код: Выделить всё

CallWndProcHookHandle = SetWindowsHookEx(WH_CALLWNDPROC, *CallWndProcHookProc, HInstance, GetCurrentThreadId() );
--------------
[BCC32 Error] form.cpp(278): E2034 Cannot convert 'unsigned long (*)(unsigned long,unsigned long,unsigned long)' to 'int (*)()'
[BCC32 Error] form.cpp(278): E2342 Type mismatch in parameter 'lpfn' (wanted 'int (*)()', got 'unsigned long (*)(unsigned long,unsigned long,unsigned long)')

...
Ответить