Current time: 19.10.2017, 12:21 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
С++, общая тема
Author Message
Berserker Offline
Administrators

Posts: 10164
Post: #1

GNU C++, код:

Code:
string s;
s = "hellow";
string a;
string b;

Code:
:
  LEA EAX,[DWORD EBP-28]
  MOV [DWORD ESP],EAX
  MOV [DWORD EBP-78],-1
  CALL REMOTE.0040A950
  MOV [DWORD ESP+4],REMOTE.0040D01B
  LEA EAX,[DWORD EBP-28]
  MOV [DWORD ESP],EAX
  MOV [DWORD EBP-78],2
  CALL REMOTE.0040AF70
  LEA EAX,[DWORD EBP-38]
  MOV [DWORD ESP],EAX
  CALL REMOTE.0040A950
  LEA EAX,[DWORD EBP-48]
  MOV [DWORD ESP],EAX
  MOV [DWORD EBP-78],1
  CALL REMOTE.0040A950
  LEA EAX,[DWORD EBP-48]
  MOV [DWORD ESP],EAX
  CALL REMOTE.0040AE10
  LEA EAX,[DWORD EBP-38]
  MOV [DWORD ESP],EAX
  MOV [DWORD EBP-78],2
  CALL REMOTE.0040AE10
  LEA EAX,[DWORD EBP-28]
  MOV [DWORD ESP],EAX
  MOV [DWORD EBP-78],-1
  CALL REMOTE.0040AE10
  MOV [DWORD EBP-80],0
  JMP L055
  LEA EBP,[DWORD EBP+18]
  MOV EAX,[DWORD EBP-78]
  MOV EDX,[DWORD EBP-74]
  MOV [DWORD EBP-88],EDX
  CMP EAX,1
  JE L043
  MOV EAX,[DWORD EBP-88]
  MOV [DWORD EBP-84],EAX
  LEA EAX,[DWORD EBP-38]
  MOV [DWORD ESP],EAX
  MOV [DWORD EBP-78],0
  CALL REMOTE.0040AE10
  MOV EDX,[DWORD EBP-84]
  MOV [DWORD EBP-88],EDX
L043:
  MOV EAX,[DWORD EBP-88]
  MOV [DWORD EBP-8C],EAX
  LEA EAX,[DWORD EBP-28]
  MOV [DWORD ESP],EAX
  MOV [DWORD EBP-78],0
  CALL REMOTE.0040AE10
  MOV EDX,[DWORD EBP-8C]
  MOV [DWORD EBP-88],EDX
  MOV EAX,[DWORD EBP-88]
  MOV [DWORD ESP],EAX
  MOV [DWORD EBP-78],-1
  CALL REMOTE.004068A0
L055:
  LEA EAX,[DWORD EBP-7C]
  MOV [DWORD ESP],EAX
  CALL REMOTE.004062C0
  MOV EAX,[DWORD EBP-80]
  LEA ESP,[DWORD EBP-C]
Здравствуй 100 килобайтный файл, медленная компиляция и простыня асм-кода. Это STL.
23.10.2011 21:32
Find all posts by this user Quote this message in a reply
Efrit Offline
Administrators

Posts: 6138
Post: #2

Угу.


Welcome to the soldier side,
Where there is no one here but me.
People all grow up to die,
There is no one here but me...
23.10.2011 21:35
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 10164
Post: #3

Передача строки в функцию генерирует ещё 12-15 команд ассемблера. Очевидно, голое копирование. Выходит, нет-таки копирования на лету и подсчёта ссылок. Или я ошибаюсь?
23.10.2011 22:42
Find all posts by this user Quote this message in a reply
packa Offline

Posts: 1218
Post: #4

Не подскажите как вызвать функцию void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)

Внутри функции void __fastcall TForm1::Button1Click(TObject *Sender)
И притом дважды?

Я не знаю как это делать, но предполагаю что как то так:
Code:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
            FormMouseDown(Form1, int X, int Y);
            FormMouseDown(Form1, int X, int Y);
}
//[C++ Error] Unit1.cpp(38): E2188 Expression syntax


подпись была удалена администрацией
просьба не использовать картинки с сайта heroeslibrary.net, так как на них ругается Chrome
01.11.2011 21:56
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 10164
Post: #5

Ну дык. Вместо int X, int Y нужны две переменные или два значения.
01.11.2011 22:16
Find all posts by this user Quote this message in a reply
Efrit Offline
Administrators

Posts: 6138
Post: #6

packa, если тебе нужен простой щелчок левой кнопкой мыши, то так:
   
P.S. Чуток переименовал тему.


Welcome to the soldier side,
Where there is no one here but me.
People all grow up to die,
There is no one here but me...
01.11.2011 22:16
Find all posts by this user Quote this message in a reply
packa Offline

Posts: 1218
Post: #7

Вроде бы работает теперь... в общем ошибок больше не выскакивает.
Но я надеялся что он "притормозит" на этих функциях и подождет пока я не кликну два раза.
Ан нет, проскакивает и все по 0.

Code:
void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
        i=0;
        bh[i]=X;
        gh[i]=Y;
        i++;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    FormMouseDown(Sender, mbLeft , TShiftState() << ssLeft, bh[0], gh[0]);
    FormMouseDown(Sender, mbLeft , TShiftState() << ssLeft, bh[1], gh[1]);
    Form1->Canvas->Rectangle(bh[0],gh[0],bh[1],gh[1]);
    Edit1->Text= IntToStr(bh[0])+" "+IntToStr(gh[0])+" "+IntToStr(bh[1])+" "+IntToStr(gh[1]);
}


подпись была удалена администрацией
просьба не использовать картинки с сайта heroeslibrary.net, так как на них ругается Chrome
01.11.2011 22:48
Find all posts by this user Quote this message in a reply
Efrit Offline
Administrators

Posts: 6138
Post: #8

packa, ты бы лучше вообще написал, что именно ты хочешь от программы. Чтобы она реагировала на нажатие кнопки лишь с третьей попытки, что ли?

"Притормаживать на этих функциях" данный код и не должен - поскольку там именно функции, а не события...


Welcome to the soldier side,
Where there is no one here but me.
People all grow up to die,
There is no one here but me...
02.11.2011 12:06
Find all posts by this user Quote this message in a reply
packa Offline

Posts: 1218
Post: #9

Проблемы решилась так(если интересно кому):
Оказалось то что я у вас тут спрашивал совершенно другое) По крайней мере я предпологал что работать будет совершенно иначе...
---
Теперь все что я рисую на Canvas сбрасывается при нажатии на любую кнопку, и\или сворачивание окна.
Какие способы есть предотвратить это кроме как сохранение всего что творится в файл и воссоздание из него все заново?


подпись была удалена администрацией
просьба не использовать картинки с сайта heroeslibrary.net, так как на них ругается Chrome
(This post was last modified: 02.11.2011 12:42 by packa.)
02.11.2011 12:27
Find all posts by this user Quote this message in a reply
Efrit Offline
Administrators

Posts: 6138
Post: #10

packa Wrote:Какие способы есть предотвратить это кроме как сохранение всего что творится в файл и воссоздание из него все заново?

Глянь на событие OnPaint - оно срабатывает тогда, когда что-то на форме перерисовывается (в том числе и "при нажатии на любую кнопку, и\или сворачивание окна"). Если тебе нужно, чтобы твой прямоугольник "держался" на форме всегда - тогда рисуй его внутри обработчика этого события....


Welcome to the soldier side,
Where there is no one here but me.
People all grow up to die,
There is no one here but me...
02.11.2011 13:04
Find all posts by this user Quote this message in a reply
Efrit Offline
Administrators

Posts: 6138
Post: #11

Разумеется, всё вышеописанное верно именно для борландовского Билдера.


Welcome to the soldier side,
Where there is no one here but me.
People all grow up to die,
There is no one here but me...
04.11.2011 15:29
Find all posts by this user Quote this message in a reply
Efrit Offline
Administrators

Posts: 6138
Post: #12

Возможно, кто-то данный прикол и видел - а вот я только узнал 4
В общем, для VС++: создаём h-файл со следующим содержимым: (Click to View)
   
... и инклудим его к своему проекту. После этого Ваш код приобретает новый, абсолютно неповторимый "боярский" стиль! Sm
Например, исходник программы-калькулятора отныне будет выглядеть так:
   


Welcome to the soldier side,
Where there is no one here but me.
People all grow up to die,
There is no one here but me...
11.11.2011 20:13
Find all posts by this user Quote this message in a reply
packa Offline

Posts: 1218
Post: #13

А к билдеру также можно.? Sm


подпись была удалена администрацией
просьба не использовать картинки с сайта heroeslibrary.net, так как на них ругается Chrome
11.11.2011 20:46
Find all posts by this user Quote this message in a reply
Efrit Offline
Administrators

Posts: 6138
Post: #14

Вряд ли, он наверняка с кириллицей внутри дефайнов не дружит Ab Хотя насчёт новых версий Билдера я не уверен...


Welcome to the soldier side,
Where there is no one here but me.
People all grow up to die,
There is no one here but me...
11.11.2011 21:03
Find all posts by this user Quote this message in a reply
Sav Offline

Posts: 2183
Post: #15

А "аминь1" и "спасихоспади1" как получилось? И "какбе" с "ага".
(This post was last modified: 11.11.2011 21:37 by Sav.)
11.11.2011 21:36
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2017 MyBB Group