Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/32: Рейтинг темы: голосов - 32, средняя оценка - 4.94
1 / 1 / 0
Регистрация: 10.04.2011
Сообщений: 11

Как переделать исходники из Delphi 7 в C++ Builder 6 ?

10.04.2011, 21:02. Показов 6776. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Как переделать исходники из Delphi в C++ Builder 6 ?, Срочно понадобилось
Идея витает давно: ссылка удалена

Но в данном случае речь идет о конкретном коде на Delphi 7
исходник "временного синхронизатора" nist_12_06_2009_00.zip
http://kladovka.net.ru/index.cgi?pid=list&rid=651
или weather_info.zip
http://www.delphisources.ru/pa... _info.html
Ищу специалистов-альтруистов способных помочь переписать код на
C++ Builder 6
и/или/т.е. напишите ссылку на ресурс с подобной реализацией вашей или найденной.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.04.2011, 21:02
Ответы с готовыми решениями:

Переделать исходники из Delphi 7 в C++ Builder 6
Выкладываю сам проект и если есть у кого предложения, советы, дайте пожалуйста. Программа не большая, но раньше мне приходилось таким...

Переделать код из Delphi в С++ Builder 6
Помогите пожалуйста переделать код из Delphi в С++ Builder 6, я не прошу кого то просто взять и всё мне переделать, я прошу помощи, так как...

Переделать функцию из Delphi в C++ Builder
function TForm1.NK(i,j:integer; Sender:TObject):integer; var kol:integer; begin kol:=0; repeat inc(kol); ...

16
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
10.04.2011, 22:24
вы будете удивлены...
Непосредственное использование модулей Delphi

Часто вы будет обнаруживать проекты Delphi, содержащие модуль, который бы вы хотели использовать в своих приложениях. Простейшим путем использования модуля Delphi является его добавление в проект. Ниже приведены шаги, необходимые для добавления модуля Delphi в проект C++Builder'а:

1. Создайте в C++Builder'е свой проект.
2. Выберите "Add to Project" в панели C ++ Builder 'а или в меню.
3. Выберите "Pascal unit" в типах файлов выпадающего списка диалогового окна открытия файлов.
4. Выберите модуль Delphi для добавления в свой проект и нажмите OK.
5. Перестройте свое приложение перед написанием кода, ссылающегося на модуль Delphi. Перестройка проекта создаст из модуля заголовок, который вы сможете включить в свое приложение.
6. Выберите пункт "File | Include Unit Hdr…" в главном меню C++Builder 'а и добавьте форму Delphi в ваше приложение.
7. Напишите код, который ссылается на модуль Delphi.

Когда вы перестраиваете приложение, C++Builder использует встроенный компилятор паскаля для создания obj -файла, который приложение сможет использовать. Компилятор паскаля также создает заголовочный файл из исходного текста. Использование этого способа подключения модулей Delphi совсем несложно.
напишите ссылку на ресурс с подобной реализацией вашей или найденной.
самому найти слабо или лень ? и такое "озадачивание" откровенно соседствует с наглостью.
0
1 / 1 / 0
Регистрация: 10.04.2011
Сообщений: 11
11.04.2011, 04:49  [ТС]
Благодарю.
Подобную реализацию ищу уже пол недели, каждый день но 4 часа уже отчаялся, потому и обратился к помощи форумов.
Как переделать исходники из Delphi в C++ Builder 6 ?, Срочно понадобилось,
речь идет о конкретном коде на Delphi 7
исходник "временного синхронизатора" nist_12_06_2009_00.zip .
Смотрел на сайтах nist. Готовые программы есть.
Но нужно исходник так например интернетовское время можно получить и weather_info.zip
(однако оно не точно и связано с чьей то партнерской программой)
Но как weather_info.zip так nist_12_06_2009_00.zip написаны на Delphi 7.
По поводу слабо: слабо переписать код Delphi 7 на C++ Builder 6 хотя и Delphi крепкий орешик.
Задача сводится к объединению двух программ на C++ Builder 6 на одной форме.
(скажем на одной половине кнопки и поля оной программы, а на другой - "временной синхронизатор").
Весь код "временного синхронизатора" принадлежит форме и других модулей в моем понимании нет..хотя дополнительные файлы есть))
Позвольте вопрос: Тем же способом в можно ли добиться поставленной цели.
Есть еще планы отъединения уже листингов от 3 программ на одну форму..такой "функциональный программный комбайн" (с Delphi это уже получилось).
А сам C++ Builder 6 случайно листинг может преобразовать от Delphi в свой код с++й?)))
А вот obj - файлы я встречал 0_0 интересно на одной форме это заработает?
Первая программа к которой нужно добавить "временной синхронизатор" как вы понимаете также на C++ Builder 6 и единственная идея, которая возникла в силу начальных знаний по с++, это механически объединить листингов от двух программ.
Ищу специалистов-альтруистов способных помочь переписать код на
C++ Builder 6 прошу и/или/т.е. "напишите ссылку на ресурс с подобной реализацией вашей или найденной".
(Если вы решили ответить, то конечно же это будет определенный рецепт.
Но столь специфичную задачу можно встретить только случайно или специалисту в этой области случайно зайти на этот форум. Поэтому нагло жду ваших ссылок на ресурс с подобной реализацией для развития этой темы! Благодарю за внимание.)
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
11.04.2011, 05:01
Я так понимаю, в Вашем случае заниматься переводом из делфи - пустая трата времени, я бы пытался использовать логику тех програм, да - какие-то части кода, но все остальное придется писАть своими ручками, что будет быстрее и качественнее. Хотя я так и не понял, что должна делать эта программа - сверять часы и делать прогноз погоды ?
0
1 / 1 / 0
Регистрация: 10.04.2011
Сообщений: 11
11.04.2011, 05:12  [ТС]
А вот и ссылка для зрителей: ага этот рецепт от сюда: http://www.cyberguru.ru/progra... using.html Но как делать все равно не понимаю(((( чайник с++й))
Вопрос: А код из Delphi 7-й версии совместим ли кодом C++ Builder 6-й версии?))))
Не вопрос по прежнему - вопрос темы!!!)
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
11.04.2011, 05:39
Если исходник понятен, то его можно и перевести на другой язык. А что за проект?
1
1 / 1 / 0
Регистрация: 10.04.2011
Сообщений: 11
11.04.2011, 12:39  [ТС]
Спасибо за участие и интерес к томе! ))
Задача сводится к объединению двух программ на C++ Builder 6 на одной форме, не о погоде.
(скажем на одной половине кнопки и поля оной программы, а на другой - "временной синхронизатор").
Весь код "временного синхронизатора" принадлежит форме и других модулей в моем понимании нет..хотя дополнительные файлы есть))
Есть еще планы отъединения уже листингов от 3 программ на одну форму..такой "функциональный программный комбайн" (с Delphi это уже получилось).
НО НО Но мне слабо переписать код Delphi 7 на C++ Builder 6 хотя и Delphi крепкий орешик.
Во "временном синхронизаторе" nist_12_06_2009_00.zip там замутили ацкий код работы с сетью интернетом, как по протоколу TCP, так - UDP и куча ссылок на американские сайты синхронизации времени (может и наши есть? (синхросайты)). И причем срабатывает только 2-е ссылки по протоколу UDP))).
Так что говорить о понимании исходника не приходится)), а о понимании с++ воощЩе((((
(Если вы решили ответить, то конечно же это будет определенный рецепт.
Но столь специфичную задачу можно встретить только случайно или специалисту в этой области случайно зайти на этот форум. Поэтому просто жду ваших ссылок на ресурс с подобной реализацией для развития этой темы! Благодарю за внимание.)
Не вопрос по прежнему - вопрос темы!!!)

Добавлено через 51 минуту
Уточнение:
речь идет о конкретном коде на Delphi 7
исходник "временного синхронизатора" nist_12_06_2009_00.zip
http://kladovka.net.ru/index.cgi?pid=list&rid=651
и только одного файла:
226 06-11-09 16:58 udp.dpr

вопрос по прежнему - вопрос темы!!!)

Может адресов добавите и вообще как тут код вставлять с прокруткой
Добавлено через 2 часа 13 минут
Server NameIP - AddressnoteLocation
nist.netservicesgroup.com64.113.32.52Michigan
nist1.aol-va.truetime.com64.236.96.532DC/Virginia
utcnist2.colorado.edu128.138.188.1722Colorado
nist1-sj.WiTime.net64.125.78.852California
nist.expertsmi.com99.150.184.2012Michigan
nist1-dc.WiTime.net206.246.118.2502DC/Virginia
utcnist.colorado.edu128.138.140.442Colorado
time-a.nist.gov129.6.15.281Maryland
time-a.timefreq.bldrdoc.gov132.163.4.1011Colorado
time.nist.gov192.43.244.181Colorado
time-nw.nist.gov131.107.13.1001,5Washington

вопрос по прежнему - вопрос темы!!!)

Добавлено через 3 часа 29 минут
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
{$o-}
unit Unit_udp;
interface
uses  Windows, Messages,  SysUtils,   Forms, StdCtrls, ExtCtrls, Classes,  Controls;
type
  TForm1 = class(TForm)
    Button_send_udp: TButton;
    ListBox1: TListBox;
    ComboBox1: TComboBox;
    CheckBox_set_time: TCheckBox;
    Timer1: TTimer;
    Button_tcp: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button_send_udpClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormResize(Sender: TObject);
    Procedure Timer1Timer(Sender: TObject);
    procedure Button_tcpClick(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure CheckBox_set_timeClick(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
  private
  public
    procedure echo(S:String;I:Integer);
    procedure echo_str(S:String);
    procedure msg( var M:TMessage); message WM_USER+1;
    procedure error(SS:string);
    procedure close_socket;
  end;
var  Form1: TForm1;
implementation  {$R *.DFM}
uses  Winsock;
const WSA_ASYNC = WM_USER+1;
      WS_VERSION_REQD = 257;
//      BASE1900 = 9435484800;
//      DayOfWeek: array[0..6] of string[3] = ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
var Sock : TSocket;
    Remote : TSockAddr;// sockaddr_in;
    WD : TWSAData;
    nRet : integer;
    packet:char;
    buf: array[1..16] of byte;
    size: Integer;
    FileTime:TFileTime;
    res:integer;
procedure TForm1.error(SS:string);
begin
  ListBox1.Items.Add(SS+IntToStr(WSAGetLastError) );
  closesocket(Sock);
  WSACleanup;
end;
procedure TForm1.echo(S:String;I:Integer);
begin
  ListBox1.Items.Add(S+'   '+IntToStr(I));
end;
procedure TForm1.echo_str(S:String);
begin
  ListBox1.Items.Add(S);
end;
function FileTime2DateTime (FileTime: TFileTime): TDateTime;
var
  LocalFileTime: TFileTime;
  SystemTime: TSystemTime;
begin
  FileTimeToLocalFileTime(FileTime, LocalFileTime) ;
  FileTimeToSystemTime(LocalFileTime, SystemTime) ;
//  Form1.echo_str( FormatDateTime('dd mmmm yyyy hh:mm:ss', SystemTimeToDateTime(SystemTime)) );
  Result := SystemTimeToDateTime(SystemTime) ;
    FileTimeToSystemTime(FileTime, SystemTime) ;
  if Form1.CheckBox_set_time.Checked then
    begin
      SetSystemTime(SystemTime);
      Form1.CheckBox_set_time.Checked:=false;
    end;
end;
 
procedure multiply(var w:array of byte; u,v:array of byte;m,n:integer);
var    k, t:  integer; i, j:cardinal;
begin
  for i:=0 to 9 {m*n-1} do w[i]:=0;
   for j := 0 to n-1 do
   begin
      k := 0;
      for i := 0 to m-1 do
      begin
         t :=  u[i]*v[j] + w[i+j] + k;
         w[i+j] := byte( t );
         k :=  t shr 8;
      end;
      w[j+m] :=byte( k );
   end;
end;
procedure add_base_1900(var w:array of byte; u:array of byte;  n:integer);
var v: array [0..4] of byte;
t,k:word;     i:integer;          // BASE1900 02 32 66 12 80 =$0232661280=9435484800
begin
  v[0]:=$80; v[1]:=$12; v[2]:=$66; v[3]:=$32; v[4]:=$02;
  for i:=0 to 9 do w[i]:=0;
      k := 0;
      for i := 0 to n do
      begin
        if (i>4) and (k=0) then break;
        if i<5 then  t := ( u[i]+v[i] + {w[i] +} k ) else t := ( u[i] + {w[i] +} k );
         w[i]:= byte( t );
         k :=  t shr 8;
      end;
end;
procedure TForm1.msg( var M:TMessage);
var i:integer;     P:Pbyte;
ww,uu,vv,aa: array[0..9] of byte;
begin
  IF M.LParam=FD_READ THEN
    BEGIN
      size :=sizeof(Remote);
      nRet := recvfrom (Sock, Buf, 16, 0,  Remote, size );
      echo('Receive ', nRet);
    //  for i := 1 to 4 do echo(' '+inttostr(Buf[i]),0);
      for i:=0 to 9 do begin ww[i]:=0; uu[i]:=0;end;
      uu[0]:=Buf[4]; uu[1]:=Buf[3];   uu[2]:=Buf[2]; uu[3]:=Buf[1];
      vv[0]:=$80;    vv[1]:=$96;      vv[2]:=$98;    vv[3]:=$00;      //98 96 80
      add_base_1900(aa,uu,5);
      multiply(ww,aa,vv,5,4);
      P:=@FileTime.dwHighDateTime;
      P^:=ww[4];INC(P);  P^:=ww[5];INC(P);  P^:=ww[6];INC(P);  P^:=ww[7];
  //  P^:=$BB;INC(P);  P^:=$DB;INC(P);  P^:=$C9;INC(P);  P^:=$01;    //HI  01 C9 DB BB
      P:=@FileTime.dwLowDateTime;
      P^:=ww[0];INC(P);  P^:=ww[1];INC(P);  P^:=ww[2];INC(P);  P^:=ww[3];
  //      P^:=$80;INC(P);  P^:=$D9;INC(P);  P^:=$63;INC(P);  P^:=$DF;       //LO  DF 63 D9 80
  //    echo_str(DateToStr( FileTime2DateTime(FileTime)) +'  '+ TimeToStr( FileTime2DateTime(FileTime)));
      echo_str( FormatDateTime('dd mmmm yyyy hh:mm:ss', FileTime2DateTime(FileTime)) +' - Remote computer');
      echo_str( FormatDateTime('dd mmmm yyyy hh:mm:ss', now) + ' - Local computer');
  END
   ELSE
    BEGIN
      i:=WSAGetLastError;
      echo('Error: ',i);
    END;
  nRet := closesocket(Sock);
  echo('Close ', nRet);
 
  Button_send_udp.Enabled:=true;
  Button_tcp.Enabled:=true;
  if Button_send_udp.Tag=1  then
  begin
    Button_send_udp.SetFocus;
  end
    else
  if Button_tcp.Tag=1 then
  begin
    Button_tcp.SetFocus;
  end;
  Button_send_udp.Tag:=0;
  Button_tcp.Tag:=0;
  WSACleanup;
  Timer1.Enabled:=false;
end;
procedure TForm1.FormCreate(Sender: TObject);
var i,k:integer;   S:String;        del:boolean;
const A:array[1..4] of string = ('.com','.gov','.net','.edu');
begin
  Caption:='NIST Time';
  try
   ComboBox1.Items.LoadFromFile(ExtractFilePath(ParamStr(0))+'nist-srv.lst');
  except
   ComboBox1.Items.add('time-a.nist.gov');
   ListBox1.Items.Add('Error: Can''t find file nist-srv.lst');
  end;
  i:=ComboBox1.Items.Count;
  while i>=0 do
  begin
    S:=ComboBox1.Items.Strings[i] ;
    del:=true;
    for k:=1 to 4 do
    begin
      if pos(A[k],LowerCase(S))>0 then
       begin
         ComboBox1.Items.Strings[i]:=copy(ComboBox1.Items.Strings[i],1,pos(A[k],LowerCase(S))+3);
         if pos('://',ComboBox1.Items.Strings[i])>0 then 
ComboBox1.Items.Strings[i]:=copy(ComboBox1.Items.Strings[i],pos('://',LowerCase(S))+3,
length(ComboBox1.Items.Strings[i])-3);
         del:=false;
       end;
    end;
    if del then ComboBox1.Items.delete(i);
    i:=i-1;
  end;
  if ComboBox1.Items.Count>12 then  ComboBox1.ItemIndex:=13 else ComboBox1.ItemIndex:=ComboBox1.Items.Count-1;
  // Caption:=IntToStr(ComboBox1.Items.Count);
//   ComboBox1.Items.SaveToFile('TTTTTTTtt.txt');
//  res:=WSAStartup({02}WS_VERSION_REQD,WD);
//  echo('Start ',res);
 
//  uu[0]:=$E8; uu[1]:=$FD;   uu[2]:=$CD; uu[3]:=$CD;  uu[4]:=0; uu[5]:=0;  //$CDCDFDE8
//  vv[0]:=$18; vv[1]:=$F6;   vv[2]:=$00; vv[3]:=$FA;
  //  for i:=0 to 9 do ww[i]:=0;
  //multiply(ww,uu,vv,3,3);
    // BASE1900 02 32 66 12 80 =$0232661280=9435484800
//  add_base1900(ww,uu,4);
  //$CDCDFDE8+$0232661280  = $ 03 00 34 10 68
  //echo(IntToHex(ww[0],2)+' '+IntToHex(ww[1],2)+' '+IntToHex(ww[2],2)+' '+IntToHex(ww[3],2)+' '+IntToHex(ww[4],2),0)
//   Button_close.Enabled:=false;
end;
procedure TForm1.Button_send_udpClick(Sender: TObject);
var IP:String;       Host : PHostEnt;
begin
  Button_send_udp.Tag:=1;
  Timer1.Enabled:=true;
  res:=WSAStartup({02}WS_VERSION_REQD,WD);
  echo('Start ',res);
  if res<>0 then
  begin
    ListBox1.Items.Add('Winsock is not responding. Error: '+IntToStr(WSAGetLastError) );
    WSACleanup;
    exit;
  end;
  Button_send_udp.Enabled:=false;
  Button_tcp.Enabled:=false;
  ListBox1.Clear;
  Sock:=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP{0});
  echo('Socket ',Sock);
  if Sock < 0 then     begin     error('Socket error: ');    exit;   end;
  nRet := WSAAsyncSelect(Sock, Handle, WSA_ASYNC, FD_READ);
  echo('Select ', nRet);
  if nRet=SOCKET_ERROR then    begin     error('Select error: ');    exit;   end;
  Remote.sin_family:=PF_INET;
  Remote.sin_port:=ntohs(IPPORT_TIMESERVER);  //37 port  OR it may be 137 port
  Remote.sin_addr.s_addr := INADDR_ANY;
  nRet := bind(Sock,  Remote, sizeof(Remote));
  echo('Bind ',nRet);
  if nRet=SOCKET_ERROR then    begin     error('Bind error: ');    exit;   end;
  try
    Host:=GetHostByName(PChar(ComboBox1.Items[ComboBox1.ItemIndex]));
    if Host <> nil then IP:=inet_ntoa(PInAddr(Host.h_addr_list^)^);
  except
    error('IP resolve error: ');
    exit;
  end;
  Remote.sin_addr.S_addr:=inet_addr(PChar(IP));
  echo_str('Time Server: '+ComboBox1.Items[ComboBox1.ItemIndex]);
  echo_str('IP: '+IP);
  if IP='' then   begin     error('IP resolve error: ');    exit;   end;
  Remote.sin_family := PF_INET;
  Remote.sin_port   := htons (IPPORT_TIMESERVER);
  packet:=' ';
  nRet := sendto(Sock, packet, 1, 0,  Remote ,  sizeof(Remote));
  echo('Send ', nRet);
  if nRet=SOCKET_ERROR then    begin     error('Send error: ');    exit;   end;
end;
procedure TForm1.close_socket;
begin
  nRet := closesocket(Sock);
  echo('Close ', nRet);
  Button_send_udp.Enabled:=true;
  Button_tcp.Enabled:=true;
  Button_send_udp.Tag:=0;
  Button_tcp.Tag:=0;
//  Button_send_udp.SetFocus;
  WSACleanup;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  WSACleanup;
end;
procedure TForm1.FormResize(Sender: TObject);
begin
  ListBox1.Height:=Height-75;
  ComboBox1.Left:=Width-15-ComboBox1.Width;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled:=false;
  close_socket;
end;
procedure TForm1.Button_tcpClick(Sender: TObject);
var IP:String;       Host : PHostEnt;
begin
  Button_tcp.Tag:=1;
  Timer1.Enabled:=true;
  res:=WSAStartup(WS_VERSION_REQD,WD);
  echo('Start ',res);
  if res<>0 then
  begin
    ListBox1.Items.Add('Winsock is not responding. Error: '+IntToStr(WSAGetLastError) );
    WSACleanup;
    exit;
  end;
  Button_tcp.Enabled:=false;
  Button_send_udp.Enabled:=false;
  ListBox1.Clear;
  Sock:=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  echo('Socket ',Sock);
  if Sock < 0 then     begin     error('Socket error: ');    exit;   end;
  nRet := WSAAsyncSelect(Sock, Handle, WSA_ASYNC, FD_READ);
  echo('Select ', nRet);
  if nRet=SOCKET_ERROR then    begin     error('Select error: ');    exit;   end;
  try
    Host:=GetHostByName(PChar(ComboBox1.Items[ComboBox1.ItemIndex]));
    if Host <> nil then IP:=inet_ntoa(PInAddr(Host.h_addr_list^)^);
  except
    error('IP resolve error: ');
    exit;
  end;
  Remote.sin_family:=PF_INET;
  Remote.sin_port:=ntohs(IPPORT_TIMESERVER);
  Remote.sin_addr.S_addr:=inet_addr(PChar(IP));
  echo_str('Time Server: '+ComboBox1.Items[ComboBox1.ItemIndex]);
  echo_str('IP: '+IP);
  if IP='' then   begin     error('IP resolve error: ');    exit;   end;
  nRet:=connect(Sock,Remote,SizeOf(Remote));
//  nRet := sendto(Sock, packet, 1, 0,  Remote ,  sizeof(Remote));
  echo('Connect ', nRet);
// //// if nRet=SOCKET_ERROR then    begin     error('Connect error: ');    exit;   end;  
//  if  SOCKET_ERROR -->  WSAGetLastError = 10035  (WSAEWOULDBLOCK) - it's OK  for
// WSAEWOULDBLOCK to be reported as the result from calling connect on a nonblocking 
//SOCK_STREAM socket, since some time must elapse for the connection to be established.
  exit;
  Remote.sin_family := PF_INET;
  Remote.sin_port   := htons (IPPORT_TIMESERVER);
  packet:=' ';
  nRet := sendto(Sock, packet, 1, 0,  Remote ,  sizeof(Remote));
  echo('Send ', nRet);
  if nRet=SOCKET_ERROR then    begin     error('Send error: ');    exit;   end;  
end;
0
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 31
11.04.2011, 15:16
В каком месте затруднения с переводом?
1
1 / 1 / 0
Регистрация: 10.04.2011
Сообщений: 11
11.04.2011, 15:54  [ТС]
Во "временном синхронизаторе" nist_12_06_2009_00.zip там замутили ацкий код работы с сетью интернетом, как по протоколу TCP, так - UDP и куча ссылок на американские сайты синхронизации времени (может и наши есть? (синхросайты)). И причем срабатывает только 2-е ссылки по протоколу UDP))).
Так что говорить о понимании исходника не приходится)), а о понимании с++ воощЩе((((=0))
(Столь специфичную задачу можно встретить только случайно или специалисту в этой области случайно зайти на этот форум. Поэтому просто жду рецепт и/или/т.е. напишите ссылку на ресурс с подобной реализацией вашей или найденной. Благодарю за внимание.)
Не вопрос по прежнему - вопрос темы!!!)
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
11.04.2011, 17:32
trwrt, если у тебя работает только копипейст - что выплывает из содержимого (содержанием я это назвать не могу) твох сообщений - то программу тебе не сделать никогда, мои сожаления.
2
1 / 1 / 0
Регистрация: 10.04.2011
Сообщений: 11
11.04.2011, 20:43  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
..копи. - что выплывает ... - то программу тебе ...сделать ...
А вот, дерзкий, посмотри на ссылку!!!!! Особенно на выделенные места!!!
http://wareseeker.com/free-nist-time-source/ Open Source Code
С Ёжиками справляться умею, сам ёжик))) Все сведется к "парсингу" на сайты с глобальным временем.
.------------------------------------------------------------------------------------------------------------------
110010111001001010100100111010011 9ec4c12949a4f31474f299058ce2b22a
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
11.04.2011, 20:59
оно мне зачем?
0
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
11.04.2011, 22:25
C++
1
2
3
4
5
6
7
8
9
10
procedure TForm1.FormCreate(Sender: TObject);
var
  NF:TDEV_BROADCAST_DEVICEINTERFACE;
begin
  LogMemo.Clear;
  NF.dbcc_size:=sizeof(TDEV_BROADCAST_DEVICEINTERFACE);
  NF.dbcc_devicetype:=DBT_DEVTYP_DEVICEINTERFACE;
 
  RegisterDeviceNotification(Handle,@NF,DEVICE_NOTIFY_ALL_INTERFACE_CLASSES);
end;
Кто нибудь может этот фрагмент перевести с дельфи7 на билдер6, будет хороший пример для полупрофессионалов в легком весе.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
11.04.2011, 23:26
судя по всему, это какя-нибудь структура, которой я никогда в глаза не видел
C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  LogMemo->Clear();
    
  TDEV_BROADCAST_DEVICEINTERFACE NF;
  NF.dbcc_size = sizeof(NF);
  NF.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE;
  RegisterDeviceNotification(Form->Handle, &NF,
                             DEVICE_NOTIFY_ALL_INTERFACE_CLASSES);
  // на самом деле, я не знаю, что у тебя там за Handle:
  // Form->Handle, Application->Handle , или что-нибудь еще
}
1
1 / 1 / 0
Регистрация: 10.04.2011
Сообщений: 11
14.04.2011, 08:22  [ТС]
http://www.sources.ru/vb/vb_se... rnet.shtml vb->c++
Это маленькое приложение показывает, как получить текущее время (GMT)
и установить системное время на Вашем PC.

http://3d2f.com/screenshot/30-... shot.shtml vb->c++
ПО преобразует исходный код MS Visual Basic 6.0 проектов для V ......., Borland C + + Builder
-----------------------------
110010111001001010100100111010011 9ec4c12949a4f31474f299058ce2b22a
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
15.04.2011, 02:50
Цитата Сообщение от trwrt Посмотреть сообщение
ПО преобразует исходный код MS Visual Basic 6.0 проектов для V ......., Borland C + + Builder
ну-ну... удачи...
0
1 / 1 / 0
Регистрация: 10.04.2011
Сообщений: 11
15.04.2011, 18:25  [ТС]
Начнем!
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TForm1.error(SS:string);........
begin
  ListBox1.Items.Add(SS+IntToStr(WSAGetLastError) );
  closesocket(Sock);
  WSACleanup;
end;.......................
procedure TForm1.close_socket;
begin
  nRet := closesocket(Sock);
  echo('Close ', nRet);
  Button_send_udp.Enabled:=true;
  Button_tcp.Enabled:=true;
  Button_send_udp.Tag:=0;
  Button_tcp.Tag:=0;
//  Button_send_udp.SetFocus;
  WSACleanup;
end;
C++
1
2
3
4
5
6
7
8
9
10
11
  ...{ //  printf("Error bind %d\n", WSAGetLastError()); // сообщение об ошибке в соединение или
    ListBox1->Items->Add("Error bind %d\n"+ WSAGetLastError());
  closesocket(mysocket); // закрываем сокет!
  WSACleanup();
  return -1;     } 
......................
void __fastcall TForm1::close_socket;
{    closesocket(my_sock);
  ListBox1->Items->Add( WSAGetLastError());
  Button_send_udp.Enabled=true;  Button_tcp.Tag=0;
  WSACleanup();      }
Перед началом использования функций библиотеки Winsock, ее необходимо подготовить к работе вызовом функции "int WSAStartup (WORD wVersionRequested, LPWSADATA lpWSAData)", передав в старшем байта слова wVersionRequested номер требуемой версии, а в младшем - номер подверсии.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.Button_tcpClick(Sender: TObject);
var IP:String;       Host : PHostEnt;
begin
  Button_tcp.Tag:=1;
  Timer1.Enabled:=true;
  res:=WSAStartup(WS_VERSION_REQD,WD);
  echo('Start ',res);
  if res<>0 then
  begin
    ListBox1.Items.Add('Winsock is not responding. Error: '+IntToStr(WSAGetLastError) );
    WSACleanup;
    exit;
  end;
C++
1
2
3
#include <stdio.h>
#include <winsock2.h>  // Wincosk2.h должен быть раньше windows!
#include <windows.h>
1.На сайте http://tcp.oflameron.com/ (en, в chrom-e переводится быстро) осуществляется добавление на панель активных объектов (кнопок, флажков...) дополнительного элемента http://tcp.oflameron.com/5.jpg через окно компонентов http://tcp.oflameron.com/3.jpg. Нужно ли в с++ добавлять этот элемент?
2. Как и после преобразования http://www.sources.ru/vb/vb_se... rnet.shtml vb->c++ (см. выше)
так и в имеющихся сетевого ПО на с++ с открытым кодом присутствует инструкция связанная с Office/word-м, на которую ругается компилятор.

wrd: Word.Application;
и/или DWORD WINAPI SexToClient(LPVOID client_socket);
Возникает вопрос для чего они и какую функцию выполняют и как преодолеть возникновение ошибки?

 Комментарий модератора 
Хватит играться с тегами, потому что Ваши сообщения очень тяжело читать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.04.2011, 18:25
Помогаю со студенческими работами здесь

Код Delphi переделать в C++ Builder
unit AdditionalInfoForm; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ...

Переделать код Delphi под С++ (Builder)
Работаю с компонентом TChart. Нужна функция, которая возвращает значение Series в точке икс. Многократные попытки адаптировать функцию,...

нужно переделать код c Delphi на С++builder
Помогите пожалуйста переделать код Delphi на С++builder. Программа поиска файлов на диске Вот код: // поиск файла в указанном каталоге...

Не удается это переделать с языка Objec Pascal (Delphi) на язык С++ (C++Builder)
Исходник, сделанный в Delphi не могу переделать для С++ Builder. Вот листинг того, что мне нужно переделать: case...

Надо переделать процедуру поиска из Delphi в Builder (базу SQL Server вышлю). Соединение ADO
procedure TForm1.btnFindClick(Sender: TObject); var KeyFields:String; KeyValues:Variant; Options:TLocateOptions; BEGIN if...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru