0 / 0 / 0
Регистрация: 19.11.2016
Сообщений: 39
1

Перевести с языка Delphi на С++

13.10.2017, 10:21. Показов 1183. Ответов 2
Метки нет (Все метки)

Здравствуйте! Прошу прощения за наглость, но мог бы кто нибуть хотябы частично перевести данный код с языка Delphi на С++. Пжалуйста! Я ничего не могу найти в интернете, конечно элементарные вещи понятны там как объявлять переменные, где функция но вот даже сначала уже не понятно что за функция какие то два слова через точку ни параметров ничего, вроде как это наследование, но в С++ такого не нашёл дальше тип THandle про него вообще ничего не смог найти((( Помогите, пожалуйста.
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
 Отображение файлов на память: 
function TfrmFileTest.CopyByMapping:Integer; 
type 
  TBuf=array[0..1024-1] of Byte; 
  PBuf=^TBuf; 
var 
  i,SrcSize:ULONG; 
  hSrc,hDst:THandle; 
  ptrIn,ptrOut:Pointer; 
  hMapFileIn,hMapFileOut:THandle; 
  BPI,BPO:PBuf; 
  Start,Finish:TDateTime; 
Begin 
  if FileExists(DestinationFileName) then DeleteFile(DestinationFileName); 
  Start:=GetTime; 2 
 
  hSrc:=CreateFile(PAnsiChar(SourceFileName),GENERIC_READ,FILE_SHARE_READ
  ,nil,OPEN_EXISTING ,FILE_ATTRIBUTE_NORMAL,0); 
  hDst:=CreateFile(PAnsiChar(DestinationFileName),GENERIC_WRITE or 
GENERIC_READ,FILE_SHARE_WRITE ,nil,CREATE_NEW   ,FILE_ATTRIBUTE_NORMAL,0); 
  SrcSize:=GetFileSize(hSrc,nil); 
  prbStatus.Max:=SrcSize div 1024; 
  hMapFileIn:=CreateFileMapping(hSrc,nil,PAGE_READONLY,0,0,nil); 
  hMapFileOut:=CreateFileMapping(hDst,nil,PAGE_READWRITE,0 ,SrcSize,nil); 
  ptrIn:=MapViewOfFile(hMapFileIn,FILE_MAP_READ,0,0,0); 
  ptrOut:=MapViewOfFile(hMapFileOut,FILE_MAP_WRITE,0,0,SrcSize); 
 
  BPI:=PBuf(ptrIn); 
  BPO:=PBuf(ptrOut); 
  for i:=1 to SrcSize div 1024 do 
  begin 
    BPO^:=BPI^; 
    Inc(BPO); 
    inc(BPI); 
    prbStatus.Position:=i; 
    Application.ProcessMessages; 
  end; 
 
  UnmapViewOfFile(ptrIn); 
  UnmapViewOfFile(ptrOut); 
  CloseHandle(hMapFileIn); 
  CloseHandle(hMapFileOut); 
  CloseHandle(hSrc); 
  CloseHandle(hDst); 
 
  Finish:=GetTime; 
  CopyByMapping:=MilliSecondsBetween(Start,Finish); 
 
  prbStatus.Position:=0; 
end; 
 
Использование Windows API: 
function TfrmFileTest.CopyByWindowsAPI: integer; 
var 
  hSrc,hDst:THandle; 
  FileSize:ULONG; 
  Buf:array[0..1024-1]of Byte; 
  i:Integer; 
  Start,Finish:TDateTime; 
begin 
 
  if FileExists(DestinationFileName) then DeleteFile(DestinationFileName); 
  Start:=GetTime; 
  hSrc:=CreateFile(PAnsiChar(SourceFileName),GENERIC_READ,FILE_SHARE_READ
  ,nil,OPEN_EXISTING ,FILE_ATTRIBUTE_NORMAL,0); 
  
hDst:=CreateFile(PAnsiChar(DestinationFileName),GENERIC_WRITE,FILE_SHARE_WRITE
  ,nil,CREATE_NEW   ,FILE_ATTRIBUTE_NORMAL,0); 
  FileSize:=GetFileSize(hSrc,nil); 
  prbStatus.Max:=FileSize div 1024; 
   
  for I:=1 to FileSize div 1024 do 
  begin 
    // вставить операторы для чтения из файла источника и записи в файл 
приемник  
    prbStatus.Position:=i; 
    Application.ProcessMessages; 
  end; 
   CloseHandle(hSrc); 
  CloseHandle(hDst); 
 
  Finish:=GetTime; 
  CopyByWindowsAPI:=MilliSecondsBetween(Start,Finish); 
 
  prbStatus.Position:=0; 
 
end;
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.10.2017, 10:21
Ответы с готовыми решениями:

Перевести с языка С# в С++
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace...

Из языка С++ перевести в Си
/* * Ввести целочисленный массив из N целых чисел. * Найти максимальный элемент массива */...

Перевести с языка С++ в С
{ int lp; float stopien; clrscr (); cout << "Podaj liczbę punktów (0 <= lp <= 100):...

Перевести с языка Паскаль в C++
Const* n=5; Var *ar:array of integer; *ar2:array of integer; *i,k:integer; *function...

2
0 / 0 / 0
Регистрация: 16.09.2016
Сообщений: 1
18.10.2017, 17:49 2
Лабы по ОС сами себя не сдадут. Сиди, разбирайся
0
0 / 0 / 0
Регистрация: 19.11.2016
Сообщений: 39
20.10.2017, 17:53  [ТС] 3
Да вперёд тебя разобрался))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.10.2017, 17:53
Помогаю со студенческими работами здесь

Перевести с С языка на асамблер.
Здрасте можете помочь перевести с С языка на асамблер. #include <stdio.h> main() { ...

Перевести программу с языка C++
Текст программы #include <vcl.h> #include <iostream.h> #include <conio.h> #pragma hdrstop ...

Перевести с языка C++ на ПАСКАЛЬ
#include<iostream> #include<algorithm> double Solve(double a,double b,double c) { return...

Перевести с языка Паскаля на С++
Перевести с языка Паскаля на С++


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru