ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

17.09.2008, 15:22
|
|
Участник форума
Регистрация: 01.05.2006
Сообщений: 216
Провел на форуме: 287212
Репутация:
62
|
|
Деструктор вызывать нельзя ни в каком случае.
Если хочешь освободить объекты - то просто сделай так. чтобы они не нужны были твоей программе - и Gc удалит их сам.
Верно, извиняюсь, глупость сморозил. Не имел под рукой компилятора. Действительно, студийный компилер даже слова delete не знает. А раз его нет - значит, оно не нужно.
|
|
|

17.09.2008, 17:38
|
|
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме: 750247
Репутация:
92
|
|
Сообщение от nerezus
Код:
#include <vector>
#include <string>
#include <windows.h>
using namespace std;
vector<string> glob(const char* path) {
vector<string> v;
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
string s;
hFind = FindFirstFile(path, &FindFileData);
do {
s = string(FindFileData.cFileName);
if (s != "." && s != "..") {
v.push_back(s);
}
} while (FindNextFile(hFind, &FindFileData));
return v;
}
Крайне медленная функция. я бы брал ссылку на вектор, все равно его объявит вышестоящая функция. А так еще и конструктор копирования вызывается.
Последний раз редактировалось 4p3; 17.09.2008 в 17:54..
|
|
|

18.09.2008, 00:21
|
|
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
Как по мне - то разница в пару процентов несущественна, ведь все равно нагрузка на ФС будет основная.
|
|
|

18.09.2008, 10:10
|
|
Новичок
Регистрация: 12.07.2008
Сообщений: 14
Провел на форуме: 16285
Репутация:
0
|
|
Возникла проблема. Пишу на С++ Builder'e. Хотел сделать свою прогу более удобной, добавил объект MainMenu и перенес функции нажатия соотв. клавишь туда. Однако после переноса (если просто через Button'ы меню программы делать, все работает на Ура) одна кнопка после нажатия стала перекрашивать окно, т.е. оно становится каким-то нетаким, заголовок программы пропадает, кнопки (свернуть,развернуть и закрыть в заголовке) тоже, поле ввода текста на половину окрашивается черным(до того места до которого есть текст). Если нажать на заголовок программы то она закрывается. Ошибок не выдает. Повторюсь что если через Button обычый без MainMenu то все нормально (даже через маинменю код выполняет, но окно программы портит и нечего не видно толком)
|
|
|

18.09.2008, 10:22
|
|
Участник форума
Регистрация: 10.08.2006
Сообщений: 147
Провел на форуме: 404152
Репутация:
94
|
|
Сообщение от NC22
Возникла проблема. Пишу на С++ Builder'e. Хотел сделать свою прогу более удобной, добавил объект MainMenu и перенес функции нажатия соотв. клавишь туда. Однако после переноса (если просто через Button'ы меню программы делать, все работает на Ура) одна кнопка после нажатия стала перекрашивать окно, т.е. оно становится каким-то нетаким, заголовок программы пропадает, кнопки (свернуть,развернуть и закрыть в заголовке) тоже, поле ввода текста на половину окрашивается черным(до того места до которого есть текст). Если нажать на заголовок программы то она закрывается. Ошибок не выдает. Повторюсь что если через Button обычый без MainMenu то все нормально (даже через маинменю код выполняет, но окно программы портит и нечего не видно толком)
было бы замечательно если бы ты код выложил, а лучше весь проект через файло обменник.
з.ы. да и бросай ты это гнилое дело писать в билдере на с++
|
|
|

18.09.2008, 12:01
|
|
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
з.ы. да и бросай ты это гнилое дело писать в билдере на с++
А ты подскажешь, как в Vc юзать Vcl? ))))
ак по мне - то разница в пару процентов несущественна, ведь все равно нагрузка на ФС будет основная.
Но все равно по указателю получше будет, тут ты прав, но причина твоя явно надумана)
|
|
|

18.09.2008, 12:30
|
|
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме: 750247
Репутация:
92
|
|
Сообщение от nerezus
Но все равно по указателю получше будет, тут ты прав, но причина твоя явно надумана)
Ты сам себе ответил?
Ладно, ближе к делу. Просто возвращение целого вектора из функции довольно редкий стиль. Реально юзер не заметит этого, так как даже при худшем случае в 10к файлов мы лишний раз скопируем килобайт 100(10 символов на все про все). Для сегодняшнего дня это пустяки.
Хотя эту функцию можно еще ускорить, если использовать уникод-вариант.
Оптимизация - корень всех зол, но не стоит о ней забывать.
|
|
|

18.09.2008, 12:38
|
|
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
Хотя эту функцию можно еще ускорить, если использовать уникод-вариант.
Я ее просто с AnsiString перевел, в билдере вообще с уникодом жопа )
Оптимизация - корень всех зол, но не стоит о ней забывать.
Почитай, тебе полезно будет: http://rsdn.ru/article/philosophy/Optimization.xml
Краткий смысл: оптимизировать нужно только критические места.
|
|
|

18.09.2008, 12:46
|
|
Новичок
Регистрация: 12.07.2008
Сообщений: 14
Провел на форуме: 16285
Репутация:
0
|
|
было бы замечательно если бы ты код выложил, а лучше весь проект через файло обменник.
Ок. Надеюсь на народе пойдет (http://narod.ru/disk/2665777000/prog_src.rar.html)? Ну если надо еще залью, только скажи сам куда. В архиве Исходники и готовый билд. Сам посмотришь, на кнопке и на др. кнопке в Меню одно и тоже действие на OnClick. Не суди строго за код, учился билдеру сам, писал сам не чего не принемая за базу. В уневерситете, вот в этом году поступил, будем изучать Delphi уже профессионально, но хотелось бы конечно MVS освоить, ну да ладно...не судьба.
Так же в архиве тестовый файл примерMTADMвSAMP.map . Загружешь его через программу (Файл->Открыть...) далее Конвертировать в...->MTA DM в SAMP или просто окне программы кнопка "Через простую кнопку все ОК".
|
|
|

18.09.2008, 18:17
|
|
Banned
Регистрация: 18.08.2008
Сообщений: 77
Провел на форуме: 1081958
Репутация:
447
|
|
Сообщение от nerezus
Я ее просто с AnsiString перевел, в билдере вообще с уникодом жопа )
Почитай, тебе полезно будет: http://rsdn.ru/article/philosophy/Optimization.xml
Краткий смысл: оптимизировать нужно только критические места.
да ! полезна
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|