Jump to content

Actualizar source de cliente para compilar no VS2017


Miguel Caldeira

Recommended Posts

Boa Noite.

Como o Titulo diz vou ensinar a actualizar uma source criada num Visual Studio mais antigo para compilar no 2017 e para isso vamos precisar:

VS2017

SDK 7.1

A source de um cliente neste caso vou usar 

e tambem precisamos do Cryptopp 5.6.1 e libjpeg

http://www103.zippyshare.com/v/70d5ziqH/file.html
 

https://www.virustotal.com/#/file-analysis/ZjAwMjc0ZWM0MTZjZjkwZWUzNGNiNmRjM2E2MjQ0OTY6MTUwNzQyNTA2NA==

 

Agora que ja temos tudo  vamos compilar o cryptopp561 para isso vamos a pasta e abrimos o ficheiro ''cryptest.sln'' com o Visual Studio 2017 e compilamos no modo Debug deixamos acabar e voltamos a compilar no modo Release quando acabar vamos para a pasta onde ficaram as libs compiladas  ''Tutorial\cryptopp561\Win32\Output'' e dentro dessa pasta vao ter duas pastas Debug e Release dentro de cada uma dessas pastas terao um ficheiro chamado cryptlib.lib esses 2 fucheiros deverao ser renomeados entao renomei o que esta dentro da pasta Debug para Cryptopp_lib_debug e o que esta dentro da pasta release para Cryptopp_lib_release.lib estes 2 ficheiros depois de renomeados devem ser copiados para a pasta das libs na extern da source do cliente neste cliente seria ''ClienteMetin2_speed\extern\library'' ele vai pedir para substituir e substituimos. (Na source de outros clientes estes ficheiros podem ser encontrados com outros nomes se nao pedir para substituir quando estiver a copiar estranhe e procure ficheiros com nomes parecidos).

Agora vamos ao libjpeg tambem vamos ter de compilar este mas de maneira diferente vamos abrir ''Developer Command Prompt for VS 2017'' que e uma linha de comandos nessa linha de comandos vamos executar o comando ''cd'' para a pasta do lib jped sera quaquer coisa como isto:

cd C:\Users\migue\Desktop\Tutorial\jpeg-6b

e depois vamos dar o seguinte comando

set INCLUDE=%INCLUDE%;c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include

e depois desse outro que ja nos vai compilar a lib

nmake /f makefile.vc  nodebug=1 libjpeg.lib

e agora dentro da pasta jpeg-6b devemos ter um ficheiro chamado ''libjpeg.lib'' este ficheiro foi compilado com a flag nodebug=1 por outras palavras Release mode entao deve ser renomeado para ''libjpeg-6bMT.lib'' e copiado para a pasta ''ClienteMetin2_speed\extern\library''  depois disso devemos procurar por todos os ficheiros .obj na pasta jpeg-6b e apagalos depois disso voltamos a ;ina de comandos do visual studio e damos o seguinte comando :

nmake /f makefile.vc  libjpeg.lib

que nos vai recompilar a source mas desta vez nao usamos a flag nodebug portanto compilamos em Release mode vamos voltar a procurar o ficheiro  ''libjpeg.lib'' dentro da pasta jpeg-6b e vamos renomealo para 

''libjpeg-6bMTd.lib'' e copialo para a pasta ''ClienteMetin2_speed\extern\library''.

Ok agora ja temos a as libs compiladas no VS2017 na nossa source do cliente vamos abrir a solução para podermos alterar algumas coisa no codigo.

Entao vamos ao projecto SphereLib e vamos abrir o ficheiro spherepack.h nesse ficheiro vamos procurar

inline void LostChild(SpherePack *pack);

e vamos apagar o inline ficando so

void LostChild(SpherePack *pack);

guardamos e passamos ao proximo ficheiro que vai ser no projecto EterLib  o ficheiro JpegFile.cpp

neste vai ser um pouco mais compicado vamos ter de encontar todos os data e size e renomealos para outra coisa por exemplo size_1 e data_1 ou sizeX e dataX...

Mostrar vos como fazer mas se me esquecer de algum e der erro a compilar e so ver o que esta sublinhado a vermelho e alterar

static unsigned char*data;

para

static unsigned char*dataX;



static int size;

para

static int sizeX;



mgr->next_input_byte = data;
mgr->bytes_in_buffer = size;

para

mgr->next_input_byte = dataX;
mgr->bytes_in_buffer = sizeX;



printf("resync %d\n", size - mgr->bytes_in_buffer);
mgr->next_input_byte = data;
mgr->bytes_in_buffer = size;

para 

printf("resync %d\n", sizeX - mgr->bytes_in_buffer);
mgr->next_input_byte = dataX;
mgr->bytes_in_buffer = sizeX;

data = _data;
size = _size;

para

data = _dataX;
size = _sizeX;

depois de alterar isto no mesmo projecto vamos alterar o ficheiro JpegFile.h

e vamos fazer os mesmo

int jpeg_save(unsigned char*data, int width, int height, int quality, const char*filename);
int jpeg_save_to_file(unsigned char*data, int width, int height, int quality, FILE*fi);
int jpeg_save_to_mem(unsigned char*data, int width, int height, int quality, unsigned char*dest, int destsize);
int jpeg_load(const char*filename, unsigned char**dest, int*width, int*height);
int jpeg_load_from_mem(unsigned char*_data, int size, unsigned char*dest, int width, int height);

para

int jpeg_save(unsigned char*dataX, int width, int height, int quality, const char*filename);
int jpeg_save_to_file(unsigned char*dataX, int width, int height, int quality, FILE*fi);
int jpeg_save_to_mem(unsigned char*dataX, int width, int height, int quality, unsigned char*dest, int destsize);
int jpeg_load(const char*filename, unsigned char**dest, int*width, int*height);
int jpeg_load_from_mem(unsigned char*_data, int sizeX, unsigned char*dest, int width, int height);

agora dentro do projecto UserInterface vamos procurar o ficheiro UserInterface.rc e vamos dar 2 cliques em cima o VS vai abrir um modo de exploração onde vamos clicar no mesmo ficheiro UserInterface.rc com o botao direito do rato e vamos clicar no menu incluir recursos dentro desse menu vao encontrar a inclusao

#include "afxres.h"

que tem de ser alterada para isto

#include "winres.h''

depois de feito isto podemos compilar o cliente e deve funcionar em caso de algum erro ou de nao percebam porque e um dos meus primeiros tutoriais e nao sou muito bom professor e so perguntar que estou ca para ajudar

Aqui deixo tambem a source do cliente ja actualizada no caso de alguem a quere e nao querer ter este trabalho de actualizar.

http://www103.zippyshare.com/v/vvixC8HX/file.html

https://www.virustotal.com/#/file-analysis/OGNjZjNkMGE3MzQ1ZTdjZTdkYjkzOTk3NTRlMTZlYWQ6MTUwNzQyNzQ0MA==

Créditos a mim pelo Tutorial

Terri Lopes pela source do cliente.

Tutorial feito para TMoore Tutorials por favor nao compartilhar em outras comunidades.

Edited by MiguelFC
Adicionados Source VS2017 e Creditos
Link to comment
  • 10 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...