Miguel Caldeira Posted October 8, 2017 at 01:48 AM Share Posted October 8, 2017 at 01:48 AM (edited) 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 October 8, 2017 at 01:57 AM by MiguelFC Adicionados Source VS2017 e Creditos Link to comment
juniorsilva Posted October 8, 2017 at 02:23 AM Share Posted October 8, 2017 at 02:23 AM Interessante, parabéns pelo tópico e tutorial. Link to comment
Chyu ^^ Posted August 26, 2018 at 09:51 PM Share Posted August 26, 2018 at 09:51 PM Can somebody reupload? Link to comment
eduwaalker Posted August 27, 2018 at 07:00 PM Share Posted August 27, 2018 at 07:00 PM Serve para atualizar vs 2008? Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now