Andrey32, при создании проекта не надо было ставить галочку "Use VCL" .
» FAQ по Borland C++ Builder
Цитата:
Andrey32, при создании проекта не надо было ставить галочку "Use VCL"
При создании проекта я сделал как в книжке "C/C++ и Borland С++ Builder 2006"
Бориса Пахомова.
На странице 10 там написано: "...снимите флажок Use VCL..." Именно так я и поступил.
Лучше скажите, сколько должен весить нормальный консольный экзешник из исходника в несколько строк? И, может быть, подскажете литературу, где внятно описаны настройки Borlanda.
Собственный хелп у него оставляет желать лучшего, у меня в добавок еще студия, там всего намешано
Вообще забавно. Начал изучать язык, и по нему все понятно и синтаксис и парадигма. А основные трудности вызывает именно отсутствие более-менее полной информации по инструментам.
1. Project->Options->Directoies/Conditionals, Conditionals defines добавьте _NO_VCL
2. Уберите все #include, которые вы считаете лишними. При компиляции в релиз: Project->Options->Compiler, Release; Project->Options->Linker, убрать Use debug libraries.
Andrey32
Цитата:
В зависимости от среды разработки и используемого языка. На асме можно и в несколько
килобайт уложиться.
2. Уберите все #include, которые вы считаете лишними. При компиляции в релиз: Project->Options->Compiler, Release; Project->Options->Linker, убрать Use debug libraries.
Andrey32
Цитата:
Лучше скажите, сколько должен весить нормальный консольный экзешник из исходника в несколько строк?
В зависимости от среды разработки и используемого языка. На асме можно и в несколько
килобайт уложиться.
Вот есть код на Pascale:
Код:
for i := 1 to n do
for j := 1 to n do
if z[i] > z[j] then
begin
a := z[i];
z[i] := z[j];
z[j]:=a;
end;
j := 1; o := 1;
for i := 1 to n do
if z[i]<l then {если заявка меньше процессорного кванта}
begin
inc(t1); {находим время обработки коротких заявок}
wm1 := z[i] * l * p / (p-1); {среднее сремя простоя процессора}
m1 := m1 + wm1; {находим среднее время ожидания}
{процессора для коротких заявок}
end
else
begin
k[j] := z[i]; {иначе организуем массив к длинных заявок}
inc(j); {считаем число длинных заявок}
end;
o := j-1 ;
i := 1; t2:=0;
repeat
if k[i] > 2*l then {если заявка больше удвоенного}
begin {процессорного кванта}
k[i] := k[i] - 2 * l;
inc(t2);
end
else
begin
if o=0 then break; {если длинных заявок нет}
inc(t2);
wm2 := k[i] * 2 * l * p / (p-1);
m2 := m2 + wm2; {находим среднее время ожидания}
{процессора для длинных заявок }
inc(i);
end;
until (i=o+1);
writeln('сумма длин заявок ', sum);
writeln(' время обработки коротких заявок ',t1);
writeln(' время обработки длинных заявок (двоичным квантом) ',t2);
writeln('среднее время ожидания процессора для коротких заявок ',m1);
writeln('среднее время ожидания процессора для длинных заявок ',m2);
readln;
end.
Код:
for i := 1 to n do
for j := 1 to n do
if z[i] > z[j] then
begin
a := z[i];
z[i] := z[j];
z[j]:=a;
end;
j := 1; o := 1;
for i := 1 to n do
if z[i]<l then {если заявка меньше процессорного кванта}
begin
inc(t1); {находим время обработки коротких заявок}
wm1 := z[i] * l * p / (p-1); {среднее сремя простоя процессора}
m1 := m1 + wm1; {находим среднее время ожидания}
{процессора для коротких заявок}
end
else
begin
k[j] := z[i]; {иначе организуем массив к длинных заявок}
inc(j); {считаем число длинных заявок}
end;
o := j-1 ;
i := 1; t2:=0;
repeat
if k[i] > 2*l then {если заявка больше удвоенного}
begin {процессорного кванта}
k[i] := k[i] - 2 * l;
inc(t2);
end
else
begin
if o=0 then break; {если длинных заявок нет}
inc(t2);
wm2 := k[i] * 2 * l * p / (p-1);
m2 := m2 + wm2; {находим среднее время ожидания}
{процессора для длинных заявок }
inc(i);
end;
until (i=o+1);
writeln('сумма длин заявок ', sum);
writeln(' время обработки коротких заявок ',t1);
writeln(' время обработки длинных заявок (двоичным квантом) ',t2);
writeln('среднее время ожидания процессора для коротких заявок ',m1);
writeln('среднее время ожидания процессора для длинных заявок ',m2);
readln;
end.
Цитата:
Вот есть код на Pascale
Цитата:
Вопрос - Как мне в Borland C++ написать REPEAT и UNTIL?
Присоединяюсь к вопросу, хотелось бы еще услышать мнения. ИМХО аналог "REPEAT" - циклы "while" или "do while"
Доброго времени суток, у меня возник такой вопрос. Я решил использовать функцию PlaySound для воспроизведения wav файла, но я так понимаю библиотеку WinAPI ещё подключить нужно. Как сделать это? Извините за тривиальный вопрос, но я с ними в первый раз работаю...
BattleMage
Код:
#include <mmsystem.h>
Код:
#include <mmsystem.h>
Как поставить последние бесплатные Тнт конролы (2.3.0) под C++Builder 2007?
Написал программу
Код: //8.14a
#include<stdio.h>
#include<string.h>
#include<alloc.h>
int main()
{ int i,j;
char S[100], N[100], P[100];
puts("put name, surname, patronymic \n");
scanf("%s",S);
//name
for(i=0; S[i]!=' ';i++)
N[i]=S[i];
//patronymic
for(j=0; S[i]!=' ';j++)
P[j]=S[i];
printf("Name %s, patronymic %s \n",N,P);
}
Код: //8.14a
#include<stdio.h>
#include<string.h>
#include<alloc.h>
int main()
{ int i,j;
char S[100], N[100], P[100];
puts("put name, surname, patronymic \n");
scanf("%s",S);
//name
for(i=0; S[i]!=' ';i++)
N[i]=S[i];
//patronymic
for(j=0; S[i]!=' ';j++)
P[j]=S[i];
printf("Name %s, patronymic %s \n",N,P);
}
SaTaR
Ты i и j перепутал во втором цикле
Или забыл i++
Ты i и j перепутал во втором цикле
Или забыл i++
Добрый день. Возник вопрос: с помощью чего в билдере 6 получить возможность работать с БД (MS SQL) на удаленном компьютере? До этого работал только с парадоксом. а тут как быть?
diaz85
Да хотя бы с помощью ADO.
Да хотя бы с помощью ADO.
inner
а через бде не получится?
а через бде не получится?
diaz85
Забудь про BDE, работай через ADO.
Забудь про BDE, работай через ADO.
как копировать нормально из TMemo в буфер клавиатуры русский текст путём нажатия кнопки ?
пробовал
Memo1->CopyToClipboard(); и Clipboard()->AsText=Memo1->Text ;
при обоих способах вместо русского языка выходят кракозябры (
пробовал
Memo1->CopyToClipboard(); и Clipboard()->AsText=Memo1->Text ;
при обоих способах вместо русского языка выходят кракозябры (
Здесь что-то по этой теме
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=780
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=780
HellSatan
Это проблемы WindowsXP и такое наблюдается во многих или всех программах. Для лечения сделай файл cp.reg и запусти его:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
@="c_1251.nls"
"1250"="c_1251.nls"
"1252"="c_1251.nls"
Это проблемы WindowsXP и такое наблюдается во многих или всех программах. Для лечения сделай файл cp.reg и запусти его:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
@="c_1251.nls"
"1250"="c_1251.nls"
"1252"="c_1251.nls"
Garrett
у меня в реестре так и стояло но не в этом дело програма будет запускаться не только у меня не факт что на стороннем компе будет доступ к реестру
vndovr
не помогло
мне советовали также обратить внимание на функции AnsiToOem() и AnsiToUtf8() но они тоже к сожелению не дают нормальный русский язык
у меня в реестре так и стояло но не в этом дело програма будет запускаться не только у меня не факт что на стороннем компе будет доступ к реестру
vndovr
не помогло
мне советовали также обратить внимание на функции AnsiToOem() и AnsiToUtf8() но они тоже к сожелению не дают нормальный русский язык
HellSatan
Стояло или не стояло - не знаю. Запусти у себя ЗеБат к примеру. Скопируй из письма русский текст и вставь обратно. Язык до копирования и перед вставкой должен быть при этом переключен на En. Если будут вопросики или другая билеберда, то примени мой рег-файл. затем снова проверь. Если наладится, а оно наладится, то проблем с программой быть не должно.
Если не хочешь возиться с реестром по моему методу -надо создавать настоящие юникодовые строки и копировать в буфер обмена только юникод.
Стояло или не стояло - не знаю. Запусти у себя ЗеБат к примеру. Скопируй из письма русский текст и вставь обратно. Язык до копирования и перед вставкой должен быть при этом переключен на En. Если будут вопросики или другая билеберда, то примени мой рег-файл. затем снова проверь. Если наладится, а оно наладится, то проблем с программой быть не должно.
Если не хочешь возиться с реестром по моему методу -надо создавать настоящие юникодовые строки и копировать в буфер обмена только юникод.
Garrett
Цитата:
не с этим всё в порядке при обычном копировании (выделить текст Ctrl+C а потом Ctrl+V или мышью копировать - вставить) всё работает нормально не работает только по нажатию кнопки в буффер текст копируется а вставляются из буфера кракозябры
Цитата:
т.е. так Memo1->Lines->Add(AnsiToUtf8(TEdi1->Text)); ???
Цитата:
Скопируй из письма русский текст и вставь обратно. Язык до копирования и перед вставкой должен быть при этом переключен на En.
не с этим всё в порядке при обычном копировании (выделить текст Ctrl+C а потом Ctrl+V или мышью копировать - вставить) всё работает нормально не работает только по нажатию кнопки в буффер текст копируется а вставляются из буфера кракозябры
Цитата:
Если не хочешь возиться с реестром по моему методу -надо создавать настоящие юникодовые строки и копировать в буфер обмена только юникод.
т.е. так Memo1->Lines->Add(AnsiToUtf8(TEdi1->Text)); ???
HellSatan
инициализация буфера обмена
...
подготовка данных wchar_t* hMem
...
HANDLE h = SetClipboardData( CF_UNICODETEXT, hMem );
if ( h == NULL ) {
не получилось
}
CloseClipboard();
подробнее см.МСДН(я специально не привожу весь код)
Для конвертации используй MultiByteToWideChar, хотя может у Борланда это делается как-то по-своему.
инициализация буфера обмена
...
подготовка данных wchar_t* hMem
...
HANDLE h = SetClipboardData( CF_UNICODETEXT, hMem );
if ( h == NULL ) {
не получилось
}
CloseClipboard();
подробнее см.МСДН(я специально не привожу весь код)
Для конвертации используй MultiByteToWideChar, хотя может у Борланда это делается как-то по-своему.
Ребята, не подскажете, как зарегистрировать свой новый графический класс в теле модуля, так как это делается в Дельфи:
initialization
TPicture.RegisterFileFormat('abc', 'ABC Image File', TABCImage);
finalization
TPicture.UnregisterGraphicClass(TABCImage);
А то приходится регистрировать при создании и уничтожении формы:
void __fastcall TForm4::FormCreate(TObject *Sender)
{
TPicture::RegisterFileFormat(0,"abc","abc", __classid(TABCImage));
}
void __fastcall TForm4::FormDestroy(TObject *Sender)
{
TPicture::UnregisterGraphicClass(0,__classid(TABCImage));
}
Коряво как-то получается
initialization
TPicture.RegisterFileFormat('abc', 'ABC Image File', TABCImage);
finalization
TPicture.UnregisterGraphicClass(TABCImage);
А то приходится регистрировать при создании и уничтожении формы:
void __fastcall TForm4::FormCreate(TObject *Sender)
{
TPicture::RegisterFileFormat(0,"abc","abc", __classid(TABCImage));
}
void __fastcall TForm4::FormDestroy(TObject *Sender)
{
TPicture::UnregisterGraphicClass(0,__classid(TABCImage));
}
Коряво как-то получается
А как с помощью ADO записи в таблицу вставить? или проапдейтить необходимые записи? в BDE был SQLUpdate .. а тут что-то пока аналога не нашел..
diaz85, вариантов уйма! ADOCommand/ADOQuery и т.п. Можно ADODataSet через Insert/Edit/Post. Для конкретного примера укажи БД, таблицу и ее поля .
Tantos
ну вот например банальный пример. есть табличка (напр T1) в ней три varchar поля (F1, F2, F3). Информация для добавления новой запись берется из 3-х Edit-ов (данные вводятся в эдиты пользователем). Такой пример подойдет?
ну вот например банальный пример. есть табличка (напр T1) в ней три varchar поля (F1, F2, F3). Информация для добавления новой запись берется из 3-х Edit-ов (данные вводятся в эдиты пользователем). Такой пример подойдет?
diaz85,
раз (ADOCommand - аналогично)
Код:
ADOQuery->SQL->Clear();
ADOQuery->SQL->Add("UPDATE t1 set f1=:f1, f2=:f2, f3=:f3 where id=:id");
ADOQuery->ParamByName("F1")->Value = Edit1->Text;
ADOQuery->ParamByName("F2")->Value = Edit2->Text;
ADOQuery->ParamByName("F3")->Value = Edit3->Text;
ADOQuery->ExecSQL();
раз (ADOCommand - аналогично)
Код:
ADOQuery->SQL->Clear();
ADOQuery->SQL->Add("UPDATE t1 set f1=:f1, f2=:f2, f3=:f3 where id=:id");
ADOQuery->ParamByName("F1")->Value = Edit1->Text;
ADOQuery->ParamByName("F2")->Value = Edit2->Text;
ADOQuery->ParamByName("F3")->Value = Edit3->Text;
ADOQuery->ExecSQL();
Кто-нибудь использовал компонент Advanced Data Export? Проблема в следующем,фильтрую из старой базы dbf ( записей 12млн.) компонентом tdbf и получаю в грид результат,сохраняю при помощи Advanced Data Export полученное в файл dbf на диске командой execute(),файл создается и все в файл записывается,только после этого проц грузиться на 100% и лечиться только снятием приложения. В чем проблема?
Tantos
вот спасибо
вот спасибо
Чувствуется что скоро завалю все тут вопросами)
Вот что то не могу сообразить в чем дело:
есть 2 формы. в хедере одной после описания класса идет описание моих переменных и присвоение им начальных значений. во второй форме объявлены они же, но со спецификацией extern. При определенном событии во второй форме она меняет значения этих переменных. затем я в первой форме проверяю изменились ли значения переменных.... но они остаются первоначальными... присвоенными при инициализации... в чем может быть трабла??
Вот что то не могу сообразить в чем дело:
есть 2 формы. в хедере одной после описания класса идет описание моих переменных и присвоение им начальных значений. во второй форме объявлены они же, но со спецификацией extern. При определенном событии во второй форме она меняет значения этих переменных. затем я в первой форме проверяю изменились ли значения переменных.... но они остаются первоначальными... присвоенными при инициализации... в чем может быть трабла??
diaz85
Лучше общие переменные вынеси в отдельный cpp-файл, а в h-файле объяви их также с extern'ом. Затем в каждую форму подключи этот хэдер.
Лучше общие переменные вынеси в отдельный cpp-файл, а в h-файле объяви их также с extern'ом. Затем в каждую форму подключи этот хэдер.
Страницы: 12345678910111213141516171819202122232425262728
Предыдущая тема: ms exchange
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.