Pular para o conteúdo

Abrir uma Url Windows/Wininet pelo Ubuntu em C++

Responder tópico
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
  • Denunciar
  • Indicar

1. Abrir uma Url Windows/Wininet pelo Ubuntu em C++

Enviado em 25/04/2026 - 15:23h

Olá?
Queria saber como abro uma Url pelo Ubuntu os seguintes arquivos:

Observação: o código está em C++

O comando é:
g++ testWeb.cpp -o testWeb.exe -lm -lwininet

#include <windows.h>
#include <wininet.h>

O código está logo abaixo:

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <ctime>
#include <cctype>
#include <cstdarg>
#include <string>
#include <fstream>
#include <windows.h>
#include <wininet.h>

void rPrintln(const char *message, ...){
if(message == NULL) {
printf("\n");
}
else {
va_list args;
va_start(args, message);
vprintf(message, args);
va_end(args);
printf("\n");
}
}

char *rOpenFileWeb(const char *url) {
const char* agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36";
HINTERNET hInternet = InternetOpenA(agent, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
if (!hInternet) {
return NULL;
}
HINTERNET hUrl = InternetOpenUrlA(hInternet, url, NULL, 0, INTERNET_FLAG_RELOAD, 0);
if (!hUrl) {
InternetCloseHandle(hInternet);
return NULL;
}
char buffer[1024];
DWORD bytesRead;
std::string content;
while (InternetReadFile(hUrl, buffer, sizeof(buffer), &bytesRead) && bytesRead > 0) {
content.append(buffer, bytesRead);
}
InternetCloseHandle(hUrl);
InternetCloseHandle(hInternet);
if (content.empty()) {
return NULL;
}
char* result = (char*)malloc(content.size() + 1);
if (!result) {
return NULL;
}
strcpy(result, content.c_str());
printf("200 OK\n");
return result;
}
int main(){
rPrintln(rOpenFileWeb("https://www.ouka.com.br/meu_arquivo.txt"));
return 0;
}
// g++ testWeb.cpp -o testWeb.exe -lm -lwininet

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

2. Re: Abrir uma Url Windows/Wininet pelo Ubuntu em C++

Enviado em 26/04/2026 - 22:33h

Até onde eu sei, não existe WinINet nativamente no Linux, por se tratar de uma biblioteca nativa do Windows.

Assim sendo, não sei se entendi o que você quer exatamente ao mencionar utilizá-la no Ubuntu.

Se você quer utilizá-la através do WINE (que é um emulador que permite rodar alguns programas de Windows no Linux), talvez seja mais fácil compilar o programa no Windows, e depois tentar executar o programa compilado para Windows através do WINE.

Se você quiser usar um programa nativamente no Linux, provavelmente usar a libcurl, como você postou em outros tópicos aqui no Fórum, seria melhor.


... Então Jesus afirmou de novo: “(...) eu vim para que tenham vida, e a tenham plenamente.” (João 10:7-10)

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Responder tópico

Entre na sua conta para responder.

Fazer login para responder