Ir ao conteúdo
  • Cadastre-se

Iniciar Programa feito em C++


myNameX

Posts recomendados

Olá pessoal, eu criei um programa em C++ que utiliza MySQL pra fazer algumas consultas, depois de clicar em "Build" o arquivo foi criado na pasta

 

C:\Users\Admin\Documents\Visual Studio 2013\Projects\projeto\Debug\projeto.exe

 

Bom, eu tentei iniciar em uma Máquina Virtual que eu tenho e no meu Notebook e apresenta alguns erros de DLL MSVCR120D.dll, então eu baixei elas e apresentou um erro, eu gostaria de saber se é possível iniciar o programa sem utilizar essas dlls ou deixar-la dentro do programa, outra coisa também apresentou um erro

 

V1T6M7J.png

 

 

Poderia me ajudar a deixar tudo dentro do arquivo executável e os usuários que forem utilizar não precisarem baixar nada?

 

Até mais.

 

Link para o comentário
Compartilhar em outros sites

Estou fazendo agora utilizando o Dev C++, já testei e só precisa da dll libmysql.dll que em breve irei por pra download junto com o meu software.

 

Agora estou com um problema.

 

 

Eu consegui pegar o IP do usuário mais está dando erro

    HINTERNET hInternet, hFile;    DWORD rSize;    char getip[47];    hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);    hFile = InternetOpenUrl(hInternet, "http://icanhazip.com", NULL, 0, INTERNET_FLAG_RELOAD, 0);    InternetReadFile(hFile, &getip, sizeof(getip), &rSize);    getip[rSize] = '\0';    InternetCloseHandle(hFile);    InternetCloseHandle(hInternet);     mysql_query(conn, "SELECT * FROM users WHERE IP='" + getip +"'");     

ERRO:

invalid operands of types `const char[35]' and `char[47]' to binary `operator+' 

Link para o comentário
Compartilhar em outros sites

O erro sumiu, mais não retorna nada, poderia verificar se está correto?

 

Quando eu coloco meu ip sem colocar WHERE IP='%s', no lugar de %s  ele funciona e com isso não funciona

    sprintf(buffer_sql, "SELECT * FROM users WHERE IP='%s'", getip);    mysql_query(conn, buffer_sql);    res = mysql_use_result(conn);    while ((row = mysql_fetch_row(res)) != NULL) {        std::cout << "Nome: " << row[2] << "";    }    mysql_free_result(res);    mysql_close(conn);   
Link para o comentário
Compartilhar em outros sites

O MySQL receberá a string no formato que está sendo passado.

Tente executar diretamente no banco a query:

SELECT * FROM users WHERE IP='192.168.0.1'
Coloquei um IP como exemplo. Troque para um que seja válido pra você.

Veja se o banco aceita essa expressão, ou se precisa trocar as aspas simples por duplas.

SELECT * FROM users WHERE IP="192.168.0.1"
Se aceitar com aspas duplas, então troque no código para:

sprintf(buffer_sql, "SELECT * FROM users WHERE IP=\"%s\"", getip);
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Encontrei o problema é que está dando uma quebra de linha

printf("SELECT * FROM users WHERE IP='%s'", getip);

Saída

UrUmLwO.png

 

Só que não sei retirar quebra de linha.

 

 

Problema resolvido, muito obrigado ScreenBlack

std::string remover(std::string my_str) {    std::string retirar;    for(unsigned int x = 0; x < my_str.length(); x++) {        if(my_str[x] != '\n')            retirar += my_str[x];    }                return retirar;}
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...