Új hozzászólás Aktív témák
-
#99472384
törölt tag
Sziasztok, Üdv. Mindenkinek!
Segítséget szeretnék kérni Visual C++ fordításban. Van egy kis forráskódom, amit sajnos nem tudok futtatható programmá fordítani.
Eddig Pascal és Delphi programozással kísérleteztem, ezekkel nincs is gondom, de sajnos az említett forráskód Visual C++-ban íródott, és ilyen fejlesztőrendszerem nincs, ami meg ingyenes volt, azzal sehogyan sem jutottam előrébb, mert valami nem igazán működött a fordításnál. Egy jópár hibaüzenettel leállt a fordítás. (pl. stdafx.h hiányzik a fordítónak) Ráadásul a C++-ban nem is igazán vagyok járatos.Szóval abban kérném a hozzáértők segítségét, hogy legyenek szívesek megnézni a kódot, hogy egyáltalán jó-e, és ha igen, akkor legyen szíves valaki ezt nekem le is fordítani egy futtatható programmá. Természetesen Windows-ra kell, és ugye ez konzol progi. Sajnos a program íróját már nem lehet elérni, de állítólag működik, csak én sehogy sem boldogulok...
Az is jó lenne, ha valaki bővebben kommentezné a kódot, mert akkor megpróbálom Delphi-ben megírni, hátha sikerül.Íme a forráskód:
#include "stdafx.h"
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdio.h>
#include "test.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// The one and only application object
CWinApp theApp;
using namespace std;
unsigned long CalcChecksum( unsigned char* buffer, unsigned long len, unsigned long seed );
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0;
int fh;
unsigned char buffer[0x8000];
unsigned short len = 0x7FFC;
unsigned short count;
unsigned short seed = 1;
unsigned long chkSum;
// initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
// TODO: change error code to suit your needs
_tprintf(_T("Fatal Error: MFC initialization failed\n"));
nRetCode = 1;
}
else
{
// TODO: code your application's behavior here.
if( argc != 2 )
{
cout << "usage: CalcChecksum.exe drive:\\path\\info.dvr" << endl;
return 0;
}
fh = _open(argv[1], _O_RDONLY | _O_BINARY);
if( fh == -1 )
{
cout << "Error opening file " << argv[1] << endl;
}
count = _read( fh, buffer, 0x8000 );
if( count != 0x8000 )
{
cout << "Error reading file " << argv[1] << endl;
return 0;
}
_close(fh);
chkSum = CalcChecksum( &buffer[0], len, seed );
_ultoa( chkSum, (char*)&buffer[0], 16 );
cout << "Checksum: 0x" << buffer << endl;
}
return nRetCode;
}
unsigned long CalcChecksum( unsigned char* buffer, unsigned long len, unsigned long seed )
{
unsigned char nrOfSegments;
unsigned long regECX = seed;
unsigned long regEDX = 0;
unsigned long regEDI = 0;
unsigned long retVal;
nrOfSegments = len / 0x15b0;
for( unsigned short i = 0; i < nrOfSegments; i++ )
{
for( unsigned short j = 0; j < 0x15b0; j++ )
{
regEDX = buffer[i*0x15b0+j];
regECX += regEDX;
regEDI += regECX;
}
regECX = regECX % 0xFFF1;
regEDI = regEDI % 0xFFF1;
}
for( i = (nrOfSegments*0x15b0); i < len; i++ )
{
regEDX = buffer[i];
regECX += regEDX;
regEDI += regECX;
}
regECX = regECX % 0xFFF1;
regEDI = regEDI % 0xFFF1;
retVal = (regEDI << 16) | regECX;
return( retVal );
}ennyi lenne...
Ha valaki tudna segíteni, és lefordítaná nekem, akkor azt nagyon szépen megköszönném!
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Ohh Lenovo ThinkPad P15 G2 Tervező Vágó Laptop -75% 15,6" i5-11500H 32/1TB RTX A2000 4GB /1 Millió/
- UHH! HP EliteBook 850 G8 Fémházas Multimédiás Laptop 15,6" -40% i7-1165G7 16/512 Iris Xe FHD EU-HUN
- IBM PS/1 2168-552 486SX-25
- ASUS ROG Strix RTX 2080 Ti OC 11GB
- Acer Swift 3 (SF314 54) i5 / 8GB RAM / SSD / FullHD / kiváló állapotban!
- Dell Latitude 8-11. gen i5, i7, 2-in-1 szinte minden típus csalódásmentes, jó ár, garancia
- AKCIÓ! ASRock H310CM i3 9100F 8GB DDR4 240GB SSD 1TB HDD GTX 1060 3GB AeroCool Strike-X 500W
- DELL Universal Dock D6000 docking station (452-BCYH) (DisplayLink)
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB DDR5 RTX 4070Ti Super GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest