Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Билдер умер, да здравствует Дельфи 2006!

10
11 октября 2005 года
Freeman
3.2K / / 06.03.2004
На сайте Борланда (не так?) давно появилось описание новой версии Дельфи. По сути, это полноценная студия для разработки сразу на нескольких языках программирования. По сравнению с предыдущей версией, Дельфи 2005, к Object Pascal и C# добавились C и C++. Но окончательный продукт, тем не менее, называется Дельфи! ;) Так держать!

Вот бы ему еще правильную реализацию .NET - может даже Вирту понравилось бы.
Страницы:
243
13 октября 2005 года
pacific_7
1.9K / / 06.09.2004
Я не сказал, именно указанные директивы - условные. Я сказал что они нужны!!!
В общем - пока сам не попробуешь эту прогу собрать по тому примеру который ты нашел сам, молчи ;)
И не надо говорить что "я и так умный".
3
13 октября 2005 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by pacific_7
А про startup - я еще раз повторяю, она ничего абсолютно не дает. Во всяком случае на VC 6.0. Если писать на чистом api.


А я еще раз повторю: "Вторая директива гарантированно отключает startup код" и добавлю: как и др. стандартные части.

Теперь от теории к практике.
Собери этот пример, посмотри на размер, попробуй запустить.

 
Код:
#pragma comment(linker,"/ENTRY:main")
//#pragma comment(linker,"/NODEFAULTLIB")

#include <stdio.h>

int main()
{
    printf("Hello");
    return 0;
}

После этого раскоментируй вторую директиву и попробуй ещё раз построить.
Думаю, после этого буден наглядно понятно, для чего эта строка нужна.

Цитата:
Originally posted by pacific_7

Вопрос к тебе - ты пытался на VC скомилить этот код?


Я не просто пытался (и удачно) скомпилировать код из оригинальной статьи (http://www.uinc.ru/articles/28/index.shtml), но и применял эту методику для других программ, в частности я сделал WebBrowser на основе того кода, что приводил в теме "Браузер на Api" размером около 1кб.

Цитата:
Originally posted by pacific_7

Про первую директиву - я немого лажанулся :) Не без нее, но использовать ее по другому.
Обязатеьно раскрою сокральные данные, только ты сперва ответь на мой вопрос.


Ок жду ответа, в т.ч. как использовать её по другому.
P.S. Говорю без сарказма.

243
13 октября 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by Green
 
Код:
#pragma comment(linker,"/ENTRY:main")
//#pragma comment(linker,"/NODEFAULTLIB")

#include <stdio.h>

int main()
{
    printf("Hello");
    return 0;
}


Ни как :) Ты сам использовал ее по другому. Щас расскажу в чем дело.
В примере что на uinc (который я тоже давным давно видел), что на коденете используется следующая директива #pragma comment(linker,"/ENTRY:New_WinMain")
Ключевой момент здесь - это New_WinMain. Если собирать проект именно так, или с каким нибудь другим именем для главной ф-ции, то при попытке собрать дебаг версию линкер выдает ошибку - он не может найти WinMain. Но, можно в обычной (не консольной как в твоем примере) прогамме за вместо этого гемора (New_WinMain) написать #pragma comment(linker,"/ENTRY:main"). Так - работает при компилировании и дебаг и релиз версии, при чем, если компилить релиз, то он получается таким же маленьким, как и в исходном варианте статьи.
А условные директивы, про которые я талдычил, нужны если у тебя написано #pragma comment(linker,"/ENTRY:New_WinMain"). Типа:

 
Код:
#ifdef _DEBUG
... WinMain(...)
#else
int New_WinMain(void)
#endif

Но, если сделать по моему варианту, то ничего этого не нужно. А это значительно удобнее и проще даже на вид. Во всяком случае в 6.0 у меня работало так и только так.
Жду критики :)
246
13 октября 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by pacific_7
В общем - пока сам не попробуешь эту прогу собрать по тому примеру который ты нашел сам, молчи ;)


Какую еще "эту прогу"? Уточняю: - пример Я не находил, а собрал сам. Потому, что:

Цитата:
Originally posted by pacific_7
... "я и так умный".

243
13 октября 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by GIZMO
Какую еще "эту прогу"? Уточняю: - пример Я не находил, а собрал сам. Потому, что:


Понял, вопросов больше не имею.

3
13 октября 2005 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by pacific_7
Ни как :) Ты сам использовал ее по другому. Щас расскажу в чем дело.
<skip>


Я её использовал так, как она предназначена для использования.
Давай по порядку.
В примере я показал для чего нужен "/NODEFAULTLIB"
Я до сих пор надеюсь, что моего примера было достаточно, чтоб это понять.

243
13 октября 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by Green
Я её использовал так, как она предназначена для использования.


Хм... Разьве я сказал, что это неправильно?

Цитата:
Originally posted by Green
Давай по порядку.


Давай :) Только о чём?

Цитата:
Originally posted by Green

В примере я показал для чего нужен "/NODEFAULTLIB"
Я до сих пор надеюсь, что моего примера было достаточно, чтоб это понять.


Да я это давно понял! Я и до этого понимал. Получается следующее - ты очень сильно стараешься объяснить мне то, что я понимаю и так.
Ладно, я устал быть непонятым, это наверное от того, что объяснять не умею (а это наверное от того, что не хочу :)). Забейте все и на всё.

243
13 октября 2005 года
pacific_7
1.9K / / 06.09.2004
Пофлудили на славу :D
243
13 октября 2005 года
pacific_7
1.9K / / 06.09.2004
Специально для GIZMO и прочих неверующих в то, что на VC exe-шники получаются значительно меньше чем на билдере. Сравните размеры пропорционально:
299
13 октября 2005 года
3D Bob
885 / / 18.04.2005
Единсвенное что меня беспокоит, в этих двух средах, то что Билдер не может откопилировать
libmysql.lib
А у Visual C++ это получается на ура.:(
GIZMO не знаешь в чем может быть дело?
317
14 октября 2005 года
Relax
573 / / 20.09.2000
Цитата:
Originally posted by pacific_7
Специально для GIZMO и прочих неверующих в то, что на VC exe-шники получаются значительно меньше чем на билдере. Сравните размеры пропорционально:


а кто спорит то с тобой?
ну поставь в систему библиотеки VCL и будут у тебя экзешники тоже маленькие...
а даже если и больше будут, то не намного, да и все равно это ничего не доказывает - я пишу на Билдере и мне нравится, надо будет - буду писать на VC - в чем проблема то? язык то один! есть конечно тонкости оболочки, но один серьезный проект и они будут известны...

так что хорошо разжигать религиозную войну! хорош! бесполезно это...

это прям как про Линукс с Виндовсом - та же история..

тем более от темы топика уклонились, вам не кажется, коллеги?

246
14 октября 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by 3D Bob
Единсвенное что меня беспокоит, в этих двух средах, то что Билдер не может откопилировать
libmysql.lib
А у Visual C++ это получается на ура.:(
GIZMO не знаешь в чем может быть дело?


Я не знаю как откомпилировать файл *.lib, тем более не знаю как его откоПИЛИровать:) Все шутки в сторону, без обид, Ок?

А если его не может подцепить линкер, то дело в том, что VC и BCB используют разный объектный формат COFF и OMF соответственно. libmysql.lib был собран в VC, поэтому BCB его не переваривает. Для этого есть coff2omf.exe, напусти его на libmysql.lib, а результат добавь к проекту:
Coff2Omf.exe [options] InputFile OutputFile
InputFile = libmysql.lib
OutputFile = OMF_libmysql.lib
[options] = см. по F1 (можно опустить т.к. [])

246
14 октября 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by pacific_7
Специально для GIZMO и прочих неверующих в то, что на VC exe-шники получаются значительно меньше чем на билдере. Сравните размеры пропорционально:


И где здесь значительно? Учти, что Я собирал его с import32.lib[~700 kb].

243
14 октября 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by GIZMO
И где здесь значительно? Учти, что Я собирал его с import32.lib[~700 kb]


Ну я же сказал тебе, что вопросов больше не имею. Просто привел факт и больше ничего. Во сколько раз мой файл меньше твоего? В два. У меня всё.
ЗЫ А цепляться к очепяткам как-то не очень умно имхо. Помоему все поняли, что я имел ввиду.

246
14 октября 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by pacific_7
Ну я же сказал тебе, что вопросов больше не имею. Просто привел факт и больше ничего. Во сколько раз мой файл меньше твоего? В два.
...
Помоему все поняли, что я имел ввиду.


Надеюсь все поняли, что если добавить туда и туда по паре строк, то разрыв так и останется в 2 kb.

Цитата:
Originally posted by pacific_7

У меня всё.


Угу...

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог